/*
	Copyright (c) 2004-2006, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/community/licensing.shtml
 */

dojo.provide("layer.widget");
dojo.provide("dojo.namespaces.dojo");
dojo.require("dojo.ns");
(function() {
	var _1 = {
		html : {
			"accordioncontainer" : "dojo.widget.AccordionContainer",
			"animatedpng" : "dojo.widget.AnimatedPng",
			"button" : "dojo.widget.Button",
			"chart" : "dojo.widget.Chart",
			"checkbox" : "dojo.widget.Checkbox",
			"clock" : "dojo.widget.Clock",
			"colorpalette" : "dojo.widget.ColorPalette",
			"combobox" : "dojo.widget.ComboBox",
			"combobutton" : "dojo.widget.Button",
			"contentpane" : "dojo.widget.ContentPane",
			"currencytextbox" : "dojo.widget.CurrencyTextbox",
			"datepicker" : "dojo.widget.DatePicker",
			"datetextbox" : "dojo.widget.DateTextbox",
			"debugconsole" : "dojo.widget.DebugConsole",
			"dialog" : "dojo.widget.Dialog",
			"dropdownbutton" : "dojo.widget.Button",
			"dropdowndatepicker" : "dojo.widget.DropdownDatePicker",
			"dropdowntimepicker" : "dojo.widget.DropdownTimePicker",
			"emaillisttextbox" : "dojo.widget.InternetTextbox",
			"emailtextbox" : "dojo.widget.InternetTextbox",
			"editor" : "dojo.widget.Editor",
			"editor2" : "dojo.widget.Editor2",
			"filteringtable" : "dojo.widget.FilteringTable",
			"fisheyelist" : "dojo.widget.FisheyeList",
			"fisheyelistitem" : "dojo.widget.FisheyeList",
			"floatingpane" : "dojo.widget.FloatingPane",
			"modalfloatingpane" : "dojo.widget.FloatingPane",
			"form" : "dojo.widget.Form",
			"googlemap" : "dojo.widget.GoogleMap",
			"inlineeditbox" : "dojo.widget.InlineEditBox",
			"integerspinner" : "dojo.widget.Spinner",
			"integertextbox" : "dojo.widget.IntegerTextbox",
			"ipaddresstextbox" : "dojo.widget.InternetTextbox",
			"layoutcontainer" : "dojo.widget.LayoutContainer",
			"linkpane" : "dojo.widget.LinkPane",
			"popupmenu2" : "dojo.widget.Menu2",
			"menuitem2" : "dojo.widget.Menu2",
			"menuseparator2" : "dojo.widget.Menu2",
			"menubar2" : "dojo.widget.Menu2",
			"menubaritem2" : "dojo.widget.Menu2",
			"pagecontainer" : "dojo.widget.PageContainer",
			"pagecontroller" : "dojo.widget.PageContainer",
			"popupcontainer" : "dojo.widget.PopupContainer",
			"progressbar" : "dojo.widget.ProgressBar",
			"radiogroup" : "dojo.widget.RadioGroup",
			"realnumbertextbox" : "dojo.widget.RealNumberTextbox",
			"regexptextbox" : "dojo.widget.RegexpTextbox",
			"repeater" : "dojo.widget.Repeater",
			"resizabletextarea" : "dojo.widget.ResizableTextarea",
			"richtext" : "dojo.widget.RichText",
			"select" : "dojo.widget.Select",
			"show" : "dojo.widget.Show",
			"showaction" : "dojo.widget.ShowAction",
			"showslide" : "dojo.widget.ShowSlide",
			"slidervertical" : "dojo.widget.Slider",
			"sliderhorizontal" : "dojo.widget.Slider",
			"slider" : "dojo.widget.Slider",
			"slideshow" : "dojo.widget.SlideShow",
			"sortabletable" : "dojo.widget.SortableTable",
			"splitcontainer" : "dojo.widget.SplitContainer",
			"tabcontainer" : "dojo.widget.TabContainer",
			"tabcontroller" : "dojo.widget.TabContainer",
			"taskbar" : "dojo.widget.TaskBar",
			"textbox" : "dojo.widget.Textbox",
			"timepicker" : "dojo.widget.TimePicker",
			"timetextbox" : "dojo.widget.DateTextbox",
			"titlepane" : "dojo.widget.TitlePane",
			"toaster" : "dojo.widget.Toaster",
			"toggler" : "dojo.widget.Toggler",
			"toolbar" : "dojo.widget.Toolbar",
			"toolbarcontainer" : "dojo.widget.Toolbar",
			"toolbaritem" : "dojo.widget.Toolbar",
			"toolbarbuttongroup" : "dojo.widget.Toolbar",
			"toolbarbutton" : "dojo.widget.Toolbar",
			"toolbardialog" : "dojo.widget.Toolbar",
			"toolbarmenu" : "dojo.widget.Toolbar",
			"toolbarseparator" : "dojo.widget.Toolbar",
			"toolbarspace" : "dojo.widget.Toolbar",
			"toolbarselect" : "dojo.widget.Toolbar",
			"toolbarcolordialog" : "dojo.widget.Toolbar",
			"tooltip" : "dojo.widget.Tooltip",
			"tree" : "dojo.widget.Tree",
			"treebasiccontroller" : "dojo.widget.TreeBasicController",
			"treecontextmenu" : "dojo.widget.TreeContextMenu",
			"treedisablewrapextension" : "dojo.widget.TreeDisableWrapExtension",
			"treedociconextension" : "dojo.widget.TreeDocIconExtension",
			"treeeditor" : "dojo.widget.TreeEditor",
			"treeemphasizeonselect" : "dojo.widget.TreeEmphasizeOnSelect",
			"treeexpandtonodeonselect" : "dojo.widget.TreeExpandToNodeOnSelect",
			"treelinkextension" : "dojo.widget.TreeLinkExtension",
			"treeloadingcontroller" : "dojo.widget.TreeLoadingController",
			"treemenuitem" : "dojo.widget.TreeContextMenu",
			"treenode" : "dojo.widget.TreeNode",
			"treerpccontroller" : "dojo.widget.TreeRPCController",
			"treeselector" : "dojo.widget.TreeSelector",
			"treetoggleonselect" : "dojo.widget.TreeToggleOnSelect",
			"treev3" : "dojo.widget.TreeV3",
			"treebasiccontrollerv3" : "dojo.widget.TreeBasicControllerV3",
			"treecontextmenuv3" : "dojo.widget.TreeContextMenuV3",
			"treedndcontrollerv3" : "dojo.widget.TreeDndControllerV3",
			"treeloadingcontrollerv3" : "dojo.widget.TreeLoadingControllerV3",
			"treemenuitemv3" : "dojo.widget.TreeContextMenuV3",
			"treerpccontrollerv3" : "dojo.widget.TreeRpcControllerV3",
			"treeselectorv3" : "dojo.widget.TreeSelectorV3",
			"urltextbox" : "dojo.widget.InternetTextbox",
			"usphonenumbertextbox" : "dojo.widget.UsTextbox",
			"ussocialsecuritynumbertextbox" : "dojo.widget.UsTextbox",
			"usstatetextbox" : "dojo.widget.UsTextbox",
			"usziptextbox" : "dojo.widget.UsTextbox",
			"validationtextbox" : "dojo.widget.ValidationTextbox",
			"treeloadingcontroller" : "dojo.widget.TreeLoadingController",
			"wizardcontainer" : "dojo.widget.Wizard",
			"wizardpane" : "dojo.widget.Wizard",
			"yahoomap" : "dojo.widget.YahooMap"
		},
		svg : {
			"chart" : "dojo.widget.svg.Chart"
		},
		vml : {
			"chart" : "dojo.widget.vml.Chart"
		}
	};
	dojo.addDojoNamespaceMapping = function(_2, _3) {
		_1[_2] = _3;
	};
	function dojoNamespaceResolver(_4, _5) {
		if (!_5) {
			_5 = "html";
		}
		if (!_1[_5]) {
			return null;
		}
		return _1[_5][_4];
	}
	dojo.registerNamespaceResolver("dojo", dojoNamespaceResolver);
})();
dojo.provide("dojo.xml.Parse");
dojo.require("dojo.dom");
dojo.xml.Parse = function() {
	var _6 = ((dojo.render.html.capable) && (dojo.render.html.ie));
	function getTagName(_7) {
		try {
			return _7.tagName.toLowerCase();
		} catch (e) {
			return "";
		}
	}
	function getDojoTagName(_8) {
		var _9 = getTagName(_8);
		if (!_9) {
			return "";
		}
		if ((dojo.widget) && (dojo.widget.tags[_9])) {
			return _9;
		}
		var p = _9.indexOf(":");
		if (p >= 0) {
			return _9;
		}
		if (_9.substr(0, 5) == "dojo:") {
			return _9;
		}
		if (dojo.render.html.capable && dojo.render.html.ie
				&& _8.scopeName != "HTML") {
			return _8.scopeName.toLowerCase() + ":" + _9;
		}
		if (_9.substr(0, 4) == "dojo") {
			return "dojo:" + _9.substring(4);
		}
		var _b = _8.getAttribute("dojoType") || _8.getAttribute("dojotype");
		if (_b) {
			if (_b.indexOf(":") < 0) {
				_b = "dojo:" + _b;
			}
			return _b.toLowerCase();
		}
		_b = _8.getAttributeNS && _8.getAttributeNS(dojo.dom.dojoml, "type");
		if (_b) {
			return "dojo:" + _b.toLowerCase();
		}
		try {
			_b = _8.getAttribute("dojo:type");
		} catch (e) {
		}
		if (_b) {
			return "dojo:" + _b.toLowerCase();
		}
		if ((dj_global["djConfig"]) && (!djConfig["ignoreClassNames"])) {
			var _c = _8.className || _8.getAttribute("class");
			if ((_c) && (_c.indexOf) && (_c.indexOf("dojo-") != -1)) {
				var _d = _c.split(" ");
				for ( var x = 0, c = _d.length; x < c; x++) {
					if (_d[x].slice(0, 5) == "dojo-") {
						return "dojo:" + _d[x].substr(5).toLowerCase();
					}
				}
			}
		}
		return "";
	}
	this.parseElement = function(_10, _11, _12, _13) {
		var _14 = getTagName(_10);
		if (_6 && _14.indexOf("/") == 0) {
			return null;
		}
		try {
			var _15 = _10.getAttribute("parseWidgets");
			if (_15 && _15.toLowerCase() == "false") {
				return {};
			}
		} catch (e) {
		}
		var _16 = true;
		if (_12) {
			var _17 = getDojoTagName(_10);
			_14 = _17 || _14;
			_16 = Boolean(_17);
		}
		var _18 = {};
		_18[_14] = [];
		var pos = _14.indexOf(":");
		if (pos > 0) {
			var ns = _14.substring(0, pos);
			_18["ns"] = ns;
			if ((dojo.ns) && (!dojo.ns.allow(ns))) {
				_16 = false;
			}
		}
		if (_16) {
			var _1b = this.parseAttributes(_10);
			for ( var _15 in _1b) {
				if ((!_18[_14][_15]) || (typeof _18[_14][_15] != "array")) {
					_18[_14][_15] = [];
				}
				_18[_14][_15].push(_1b[_15]);
			}
			_18[_14].nodeRef = _10;
			_18.tagName = _14;
			_18.index = _13 || 0;
		}
		var _1c = 0;
		for ( var i = 0; i < _10.childNodes.length; i++) {
			var tcn = _10.childNodes.item(i);
			switch (tcn.nodeType) {
			case dojo.dom.ELEMENT_NODE:
				var ctn = getDojoTagName(tcn) || getTagName(tcn);
				if (!_18[ctn]) {
					_18[ctn] = [];
				}
				_18[ctn].push(this.parseElement(tcn, true, _12, _1c));
				if ((tcn.childNodes.length == 1)
						&& (tcn.childNodes.item(0).nodeType == dojo.dom.TEXT_NODE)) {
					_18[ctn][_18[ctn].length - 1].value = tcn.childNodes
							.item(0).nodeValue;
				}
				_1c++;
				break;
			case dojo.dom.TEXT_NODE:
				if (_10.childNodes.length == 1) {
					_18[_14].push({
						value : _10.childNodes.item(0).nodeValue
					});
				}
				break;
			default:
				break;
			}
		}
		return _18;
	};
	this.parseAttributes = function(_20) {
		var _21 = {};
		var _22 = _20.attributes;
		var _23, i = 0;
		while ((_23 = _22[i++])) {
			if (_6) {
				if (!_23) {
					continue;
				}
				if ((typeof _23 == "object")
						&& (typeof _23.nodeValue == "undefined")
						|| (_23.nodeValue == null) || (_23.nodeValue == "")) {
					continue;
				}
			}
			var nn = _23.nodeName.split(":");
			nn = (nn.length == 2) ? nn[1] : _23.nodeName;
			_21[nn] = {
				value : _23.nodeValue
			};
		}
		return _21;
	};
};
dojo.provide("dojo.widget.Widget");
dojo.require("dojo.lang.func");
dojo.require("dojo.lang.array");
dojo.require("dojo.lang.extras");
dojo.require("dojo.lang.declare");
dojo.require("dojo.ns");
dojo.require("dojo.widget.Manager");
dojo.require("dojo.event.*");
dojo
		.declare(
				"dojo.widget.Widget",
				null,
				function() {
					this.children = [];
					this.extraArgs = {};
				},
				{
					parent : null,
					isTopLevel : false,
					disabled : false,
					isContainer : false,
					widgetId : "",
					widgetType : "Widget",
					ns : "dojo",
					getNamespacedType : function() {
						return (this.ns ? this.ns + ":" + this.widgetType
								: this.widgetType).toLowerCase();
					},
					toString : function() {
						return "[Widget " + this.getNamespacedType() + ", "
								+ (this.widgetId || "NO ID") + "]";
					},
					repr : function() {
						return this.toString();
					},
					enable : function() {
						this.disabled = false;
					},
					disable : function() {
						this.disabled = true;
					},
					onResized : function() {
						this.notifyChildrenOfResize();
					},
					notifyChildrenOfResize : function() {
						for ( var i = 0; i < this.children.length; i++) {
							var _27 = this.children[i];
							if (_27.onResized) {
								_27.onResized();
							}
						}
					},
					create : function(_28, _29, _2a, ns) {
						if (ns) {
							this.ns = ns;
						}
						this.satisfyPropertySets(_28, _29, _2a);
						this.mixInProperties(_28, _29, _2a);
						this.postMixInProperties(_28, _29, _2a);
						dojo.widget.manager.add(this);
						this.buildRendering(_28, _29, _2a);
						this.initialize(_28, _29, _2a);
						this.postInitialize(_28, _29, _2a);
						this.postCreate(_28, _29, _2a);
						return this;
					},
					destroy : function(_2c) {
						if (this.parent) {
							this.parent.removeChild(this);
						}
						this.destroyChildren();
						this.uninitialize();
						this.destroyRendering(_2c);
						dojo.widget.manager.removeById(this.widgetId);
					},
					destroyChildren : function() {
						var _2d;
						var i = 0;
						while (this.children.length > i) {
							_2d = this.children[i];
							if (_2d instanceof dojo.widget.Widget) {
								this.removeChild(_2d);
								_2d.destroy();
								continue;
							}
							i++;
						}
					},
					getChildrenOfType : function(_2f, _30) {
						var ret = [];
						var _32 = dojo.lang.isFunction(_2f);
						if (!_32) {
							_2f = _2f.toLowerCase();
						}
						for ( var x = 0; x < this.children.length; x++) {
							if (_32) {
								if (this.children[x] instanceof _2f) {
									ret.push(this.children[x]);
								}
							} else {
								if (this.children[x].widgetType.toLowerCase() == _2f) {
									ret.push(this.children[x]);
								}
							}
							if (_30) {
								ret = ret.concat(this.children[x]
										.getChildrenOfType(_2f, _30));
							}
						}
						return ret;
					},
					getDescendants : function() {
						var _34 = [];
						var _35 = [ this ];
						var _36;
						while ((_36 = _35.pop())) {
							_34.push(_36);
							if (_36.children) {
								dojo.lang.forEach(_36.children, function(_37) {
									_35.push(_37);
								});
							}
						}
						return _34;
					},
					isFirstChild : function() {
						return this === this.parent.children[0];
					},
					isLastChild : function() {
						return this === this.parent.children[this.parent.children.length - 1];
					},
					satisfyPropertySets : function(_38) {
						return _38;
					},
					mixInProperties : function(_39, _3a) {
						if ((_39["fastMixIn"]) || (_3a["fastMixIn"])) {
							for ( var x in _39) {
								this[x] = _39[x];
							}
							return;
						}
						var _3c;
						var _3d = dojo.widget.lcArgsCache[this.widgetType];
						if (_3d == null) {
							_3d = {};
							for ( var y in this) {
								_3d[((new String(y)).toLowerCase())] = y;
							}
							dojo.widget.lcArgsCache[this.widgetType] = _3d;
						}
						var _3f = {};
						for ( var x in _39) {
							if (!this[x]) {
								var y = _3d[(new String(x)).toLowerCase()];
								if (y) {
									_39[y] = _39[x];
									x = y;
								}
							}
							if (_3f[x]) {
								continue;
							}
							_3f[x] = true;
							if ((typeof this[x]) != (typeof _3c)) {
								if (typeof _39[x] != "string") {
									this[x] = _39[x];
								} else {
									if (dojo.lang.isString(this[x])) {
										this[x] = _39[x];
									} else {
										if (dojo.lang.isNumber(this[x])) {
											this[x] = new Number(_39[x]);
										} else {
											if (dojo.lang.isBoolean(this[x])) {
												this[x] = (_39[x].toLowerCase() == "false") ? false
														: true;
											} else {
												if (dojo.lang
														.isFunction(this[x])) {
													if (_39[x]
															.search(/[^\w\.]+/i) == -1) {
														this[x] = dojo
																.evalObjPath(
																		_39[x],
																		false);
													} else {
														var tn = dojo.lang
																.nameAnonFunc(
																		new Function(
																				_39[x]),
																		this);
														dojo.event.kwConnect({
															srcObj : this,
															srcFunc : x,
															adviceObj : this,
															adviceFunc : tn
														});
													}
												} else {
													if (dojo.lang
															.isArray(this[x])) {
														this[x] = _39[x]
																.split(";");
													} else {
														if (this[x] instanceof Date) {
															this[x] = new Date(
																	Number(_39[x]));
														} else {
															if (typeof this[x] == "object") {
																if (this[x] instanceof dojo.uri.Uri) {
																	this[x] = dojo.uri
																			.dojoUri(_39[x]);
																} else {
																	var _41 = _39[x]
																			.split(";");
																	for ( var y = 0; y < _41.length; y++) {
																		var si = _41[y]
																				.indexOf(":");
																		if ((si != -1)
																				&& (_41[y].length > si)) {
																			this[x][_41[y]
																					.substr(
																							0,
																							si)
																					.replace(
																							/^\s+|\s+$/g,
																							"")] = _41[y]
																					.substr(si + 1);
																		}
																	}
																}
															} else {
																this[x] = _39[x];
															}
														}
													}
												}
											}
										}
									}
								}
							} else {
								this.extraArgs[x.toLowerCase()] = _39[x];
							}
						}
					},
					postMixInProperties : function(_43, _44, _45) {
					},
					initialize : function(_46, _47, _48) {
						return false;
					},
					postInitialize : function(_49, _4a, _4b) {
						return false;
					},
					postCreate : function(_4c, _4d, _4e) {
						return false;
					},
					uninitialize : function() {
						return false;
					},
					buildRendering : function(_4f, _50, _51) {
						dojo
								.unimplemented("dojo.widget.Widget.buildRendering, on "
										+ this.toString() + ", ");
						return false;
					},
					destroyRendering : function() {
						dojo
								.unimplemented("dojo.widget.Widget.destroyRendering");
						return false;
					},
					addedTo : function(_52) {
					},
					addChild : function(_53) {
						dojo.unimplemented("dojo.widget.Widget.addChild");
						return false;
					},
					removeChild : function(_54) {
						for ( var x = 0; x < this.children.length; x++) {
							if (this.children[x] === _54) {
								this.children.splice(x, 1);
								_54.parent = null;
								break;
							}
						}
						return _54;
					},
					getPreviousSibling : function() {
						var idx = this.getParentIndex();
						if (idx <= 0) {
							return null;
						}
						return this.parent.children[idx - 1];
					},
					getSiblings : function() {
						return this.parent.children;
					},
					getParentIndex : function() {
						return dojo.lang.indexOf(this.parent.children, this,
								true);
					},
					getNextSibling : function() {
						var idx = this.getParentIndex();
						if (idx == this.parent.children.length - 1) {
							return null;
						}
						if (idx < 0) {
							return null;
						}
						return this.parent.children[idx + 1];
					}
				});
dojo.widget.lcArgsCache = {};
dojo.widget.tags = {};
dojo.widget.tags.addParseTreeHandler = function(_58) {
	dojo
			.deprecated(
					"addParseTreeHandler",
					". ParseTreeHandlers are now reserved for components. Any unfiltered DojoML tag without a ParseTreeHandler is assumed to be a widget",
					"0.5");
};
dojo.widget.tags["dojo:propertyset"] = function(_59, _5a, _5b) {
	var _5c = _5a.parseProperties(_59["dojo:propertyset"]);
};
dojo.widget.tags["dojo:connect"] = function(_5d, _5e, _5f) {
	var _60 = _5e.parseProperties(_5d["dojo:connect"]);
};
dojo.widget.buildWidgetFromParseTree = function(_61, _62, _63, _64, _65, _66) {
	var _67 = _61.split(":");
	_67 = (_67.length == 2) ? _67[1] : _61;
	var _68 = _66 || _63.parseProperties(_62[_62["ns"] + ":" + _67]);
	var _69 = dojo.widget.manager.getImplementation(_67, null, null, _62["ns"]);
	if (!_69) {
		throw new Error("cannot find \"" + _61 + "\" widget");
	} else {
		if (!_69.create) {
			throw new Error(
					"\""
							+ _61
							+ "\" widget object has no \"create\" method and does not appear to implement *Widget");
		}
	}
	_68["dojoinsertionindex"] = _65;
	var ret = _69.create(_68, _62, _64, _62["ns"]);
	return ret;
};
dojo.widget.defineWidget = function(_6b, _6c, _6d, _6e, _6f) {
	if (dojo.lang.isString(arguments[3])) {
		dojo.widget._defineWidget(arguments[0], arguments[3], arguments[1],
				arguments[4], arguments[2]);
	} else {
		var _70 = [ arguments[0] ], p = 3;
		if (dojo.lang.isString(arguments[1])) {
			_70.push(arguments[1], arguments[2]);
		} else {
			_70.push("", arguments[1]);
			p = 2;
		}
		if (dojo.lang.isFunction(arguments[p])) {
			_70.push(arguments[p], arguments[p + 1]);
		} else {
			_70.push(null, arguments[p]);
		}
		dojo.widget._defineWidget.apply(this, _70);
	}
};
dojo.widget.defineWidget.renderers = "html|svg|vml";
dojo.widget._defineWidget = function(_72, _73, _74, _75, _76) {
	var _77 = _72.split(".");
	var _78 = _77.pop();
	var _79 = "\\.(" + (_73 ? _73 + "|" : "")
			+ dojo.widget.defineWidget.renderers + ")\\.";
	var r = _72.search(new RegExp(_79));
	_77 = (r < 0 ? _77.join(".") : _72.substr(0, r));
	dojo.widget.manager.registerWidgetPackage(_77);
	var pos = _77.indexOf(".");
	var _7c = (pos > -1) ? _77.substring(0, pos) : _77;
	_76 = (_76) || {};
	_76.widgetType = _78;
	if ((!_75) && (_76["classConstructor"])) {
		_75 = _76.classConstructor;
		delete _76.classConstructor;
	}
	dojo.declare(_72, _74, _75, _76);
};
dojo.provide("dojo.widget.Parse");
dojo.require("dojo.widget.Manager");
dojo.require("dojo.dom");
dojo.widget.Parse = function(_7d) {
	this.propertySetsList = [];
	this.fragment = _7d;
	this.createComponents = function(_7e, _7f) {
		var _80 = [];
		var _81 = false;
		try {
			if (_7e && _7e.tagName && (_7e != _7e.nodeRef)) {
				var _82 = dojo.widget.tags;
				var tna = String(_7e.tagName).split(";");
				for ( var x = 0; x < tna.length; x++) {
					var ltn = tna[x].replace(/^\s+|\s+$/g, "").toLowerCase();
					_7e.tagName = ltn;
					var ret;
					if (_82[ltn]) {
						_81 = true;
						ret = _82[ltn](_7e, this, _7f, _7e.index);
						_80.push(ret);
					} else {
						if (ltn.indexOf(":") == -1) {
							ltn = "dojo:" + ltn;
						}
						ret = dojo.widget.buildWidgetFromParseTree(ltn, _7e,
								this, _7f, _7e.index);
						if (ret) {
							_81 = true;
							_80.push(ret);
						}
					}
				}
			}
		} catch (e) {
			dojo.debug("dojo.widget.Parse: error:", e);
		}
		if (!_81) {
			_80 = _80.concat(this.createSubComponents(_7e, _7f));
		}
		return _80;
	};
	this.createSubComponents = function(_87, _88) {
		var _89, _8a = [];
		for ( var _8b in _87) {
			_89 = _87[_8b];
			if (_89 && typeof _89 == "object" && (_89 != _87.nodeRef)
					&& (_89 != _87.tagName) && (!dojo.dom.isNode(_89))) {
				_8a = _8a.concat(this.createComponents(_89, _88));
			}
		}
		return _8a;
	};
	this.parsePropertySets = function(_8c) {
		return [];
	};
	this.parseProperties = function(_8d) {
		var _8e = {};
		for ( var _8f in _8d) {
			if ((_8d[_8f] == _8d.tagName) || (_8d[_8f] == _8d.nodeRef)) {
			} else {
				var _90 = _8d[_8f];
				if (_90.tagName && dojo.widget.tags[_90.tagName.toLowerCase()]) {
				} else {
					if (_90[0] && _90[0].value != "" && _90[0].value != null) {
						try {
							if (_8f.toLowerCase() == "dataprovider") {
								var _91 = this;
								this.getDataProvider(_91, _90[0].value);
								_8e.dataProvider = this.dataProvider;
							}
							_8e[_8f] = _90[0].value;
							var _92 = this.parseProperties(_90);
							for ( var _93 in _92) {
								_8e[_93] = _92[_93];
							}
						} catch (e) {
							dojo.debug(e);
						}
					}
				}
				switch (_8f.toLowerCase()) {
				case "checked":
				case "disabled":
					if (typeof _8e[_8f] != "boolean") {
						_8e[_8f] = true;
					}
					break;
				}
			}
		}
		return _8e;
	};
	this.getDataProvider = function(_94, _95) {
		dojo.io.bind({
			url : _95,
			load : function(_96, _97) {
				if (_96 == "load") {
					_94.dataProvider = _97;
				}
			},
			mimetype : "text/javascript",
			sync : true
		});
	};
	this.getPropertySetById = function(_98) {
		for ( var x = 0; x < this.propertySetsList.length; x++) {
			if (_98 == this.propertySetsList[x]["id"][0].value) {
				return this.propertySetsList[x];
			}
		}
		return "";
	};
	this.getPropertySetsByType = function(_9a) {
		var _9b = [];
		for ( var x = 0; x < this.propertySetsList.length; x++) {
			var cpl = this.propertySetsList[x];
			var _9e = cpl.componentClass || cpl.componentType || null;
			var _9f = this.propertySetsList[x]["id"][0].value;
			if (_9e && (_9f == _9e[0].value)) {
				_9b.push(cpl);
			}
		}
		return _9b;
	};
	this.getPropertySets = function(_a0) {
		var ppl = "dojo:propertyproviderlist";
		var _a2 = [];
		var _a3 = _a0.tagName;
		if (_a0[ppl]) {
			var _a4 = _a0[ppl].value.split(" ");
			for ( var _a5 in _a4) {
				if ((_a5.indexOf("..") == -1) && (_a5.indexOf("://") == -1)) {
					var _a6 = this.getPropertySetById(_a5);
					if (_a6 != "") {
						_a2.push(_a6);
					}
				} else {
				}
			}
		}
		return this.getPropertySetsByType(_a3).concat(_a2);
	};
	this.createComponentFromScript = function(_a7, _a8, _a9, ns) {
		_a9.fastMixIn = true;
		var ltn = (ns || "dojo") + ":" + _a8.toLowerCase();
		if (dojo.widget.tags[ltn]) {
			return [ dojo.widget.tags[ltn](_a9, this, null, null, _a9) ];
		}
		return [ dojo.widget.buildWidgetFromParseTree(ltn, _a9, this, null,
				null, _a9) ];
	};
};
dojo.widget._parser_collection = {
	"dojo" : new dojo.widget.Parse()
};
dojo.widget.getParser = function(_ac) {
	if (!_ac) {
		_ac = "dojo";
	}
	if (!this._parser_collection[_ac]) {
		this._parser_collection[_ac] = new dojo.widget.Parse();
	}
	return this._parser_collection[_ac];
};
dojo.widget.createWidget = function(_ad, _ae, _af, _b0) {
	var _b1 = false;
	var _b2 = (typeof _ad == "string");
	if (_b2) {
		var pos = _ad.indexOf(":");
		var ns = (pos > -1) ? _ad.substring(0, pos) : "dojo";
		if (pos > -1) {
			_ad = _ad.substring(pos + 1);
		}
		var _b5 = _ad.toLowerCase();
		var _b6 = ns + ":" + _b5;
		_b1 = (dojo.byId(_ad) && !dojo.widget.tags[_b6]);
	}
	if ((arguments.length == 1) && (_b1 || !_b2)) {
		var xp = new dojo.xml.Parse();
		var tn = _b1 ? dojo.byId(_ad) : _ad;
		return dojo.widget.getParser().createComponents(
				xp.parseElement(tn, null, true))[0];
	}
	function fromScript(_b9, _ba, _bb, ns) {
		_bb[_b6] = {
			dojotype : [ {
				value : _b5
			} ],
			nodeRef : _b9,
			fastMixIn : true
		};
		_bb.ns = ns;
		return dojo.widget.getParser().createComponentFromScript(_b9, _ba, _bb,
				ns);
	}
	_ae = _ae || {};
	var _bd = false;
	var tn = null;
	var h = dojo.render.html.capable;
	if (h) {
		tn = document.createElement("span");
	}
	if (!_af) {
		_bd = true;
		_af = tn;
		if (h) {
			dojo.body().appendChild(_af);
		}
	} else {
		if (_b0) {
			dojo.dom.insertAtPosition(tn, _af, _b0);
		} else {
			tn = _af;
		}
	}
	var _bf = fromScript(tn, _ad.toLowerCase(), _ae, ns);
	if ((!_bf) || (!_bf[0]) || (typeof _bf[0].widgetType == "undefined")) {
		throw new Error("createWidget: Creation of \"" + _ad
				+ "\" widget failed.");
	}
	try {
		if (_bd && _bf[0].domNode.parentNode) {
			_bf[0].domNode.parentNode.removeChild(_bf[0].domNode);
		}
	} catch (e) {
		dojo.debug(e);
	}
	return _bf[0];
};
dojo.kwCompoundRequire({
	common : [ [ "dojo.uri.Uri", false, false ] ]
});
dojo.provide("dojo.uri.*");
dojo.provide("dojo.widget.DomWidget");
dojo.require("dojo.event.*");
dojo.require("dojo.dom");
dojo.require("dojo.html.style");
dojo.require("dojo.lang.func");
dojo.require("dojo.lang.extras");
dojo.widget._cssFiles = {};
dojo.widget._cssStrings = {};
dojo.widget._templateCache = {};
dojo.widget.defaultStrings = {
	dojoRoot : dojo.hostenv.getBaseScriptUri(),
	dojoWidgetModuleUri : dojo.uri.moduleUri("dojo.widget"),
	baseScriptUri : dojo.hostenv.getBaseScriptUri()
};
dojo.widget.fillFromTemplateCache = function(obj, _c1, _c2, _c3) {
	var _c4 = _c1 || obj.templatePath;
	var _c5 = dojo.widget._templateCache;
	if (!_c4 && !obj["widgetType"]) {
		do {
			var _c6 = "__dummyTemplate__"
					+ dojo.widget._templateCache.dummyCount++;
		} while (_c5[_c6]);
		obj.widgetType = _c6;
	}
	var wt = _c4 ? _c4.toString() : obj.widgetType;
	var ts = _c5[wt];
	if (!ts) {
		_c5[wt] = {
			"string" : null,
			"node" : null
		};
		if (_c3) {
			ts = {};
		} else {
			ts = _c5[wt];
		}
	}
	if ((!obj.templateString) && (!_c3)) {
		obj.templateString = _c2 || ts["string"];
	}
	if (obj.templateString) {
		obj.templateString = this._sanitizeTemplateString(obj.templateString);
	}
	if ((!obj.templateNode) && (!_c3)) {
		obj.templateNode = ts["node"];
	}
	if ((!obj.templateNode) && (!obj.templateString) && (_c4)) {
		var _c9 = this._sanitizeTemplateString(dojo.hostenv.getText(_c4));
		obj.templateString = _c9;
		if (!_c3) {
			_c5[wt]["string"] = _c9;
		}
	}
	if ((!ts["string"]) && (!_c3)) {
		ts.string = obj.templateString;
	}
};
dojo.widget._sanitizeTemplateString = function(_ca) {
	if (_ca) {
		_ca = _ca.replace(
				/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, "");
		var _cb = _ca.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
		if (_cb) {
			_ca = _cb[1];
		}
	} else {
		_ca = "";
	}
	return _ca;
};
dojo.widget._templateCache.dummyCount = 0;
dojo.widget.attachProperties = [ "dojoAttachPoint", "id" ];
dojo.widget.eventAttachProperty = "dojoAttachEvent";
dojo.widget.onBuildProperty = "dojoOnBuild";
dojo.widget.waiNames = [ "waiRole", "waiState" ];
dojo.widget.wai = {
	waiRole : {
		name : "waiRole",
		"namespace" : "http://www.w3.org/TR/xhtml2",
		alias : "x2",
		prefix : "wairole:"
	},
	waiState : {
		name : "waiState",
		"namespace" : "http://www.w3.org/2005/07/aaa",
		alias : "aaa",
		prefix : ""
	},
	setAttr : function(_cc, ns, _ce, _cf) {
		if (dojo.render.html.ie) {
			_cc.setAttribute(this[ns].alias + ":" + _ce, this[ns].prefix + _cf);
		} else {
			_cc.setAttributeNS(this[ns]["namespace"], _ce, this[ns].prefix
					+ _cf);
		}
	},
	getAttr : function(_d0, ns, _d2) {
		if (dojo.render.html.ie) {
			return _d0.getAttribute(this[ns].alias + ":" + _d2);
		} else {
			return _d0.getAttributeNS(this[ns]["namespace"], _d2);
		}
	},
	removeAttr : function(_d3, ns, _d5) {
		var _d6 = true;
		if (dojo.render.html.ie) {
			_d6 = _d3.removeAttribute(this[ns].alias + ":" + _d5);
		} else {
			_d3.removeAttributeNS(this[ns]["namespace"], _d5);
		}
		return _d6;
	}
};
dojo.widget.attachTemplateNodes = function(_d7, _d8, _d9) {
	var _da = dojo.dom.ELEMENT_NODE;
	function trim(str) {
		return str.replace(/^\s+|\s+$/g, "");
	}
	if (!_d7) {
		_d7 = _d8.domNode;
	}
	if (_d7.nodeType != _da) {
		return;
	}
	var _dc = _d7.all || _d7.getElementsByTagName("*");
	var _dd = _d8;
	for ( var x = -1; x < _dc.length; x++) {
		var _df = (x == -1) ? _d7 : _dc[x];
		var _e0 = [];
		if (!_d8.widgetsInTemplate || !_df.getAttribute("dojoType")) {
			for ( var y = 0; y < this.attachProperties.length; y++) {
				var _e2 = _df.getAttribute(this.attachProperties[y]);
				if (_e2) {
					_e0 = _e2.split(";");
					for ( var z = 0; z < _e0.length; z++) {
						if (dojo.lang.isArray(_d8[_e0[z]])) {
							_d8[_e0[z]].push(_df);
						} else {
							_d8[_e0[z]] = _df;
						}
					}
					break;
				}
			}
			var _e4 = _df.getAttribute(this.eventAttachProperty);
			if (_e4) {
				var _e5 = _e4.split(";");
				for ( var y = 0; y < _e5.length; y++) {
					if ((!_e5[y]) || (!_e5[y].length)) {
						continue;
					}
					var _e6 = null;
					var _e7 = trim(_e5[y]);
					if (_e5[y].indexOf(":") >= 0) {
						var _e8 = _e7.split(":");
						_e7 = trim(_e8[0]);
						_e6 = trim(_e8[1]);
					}
					if (!_e6) {
						_e6 = _e7;
					}
					var tf = function() {
						var ntf = new String(_e6);
						return function(evt) {
							if (_dd[ntf]) {
								_dd[ntf]
										(dojo.event.browser.fixEvent(evt, this));
							}
						};
					}();
					dojo.event.browser.addListener(_df, _e7, tf, false, true);
				}
			}
			for ( var y = 0; y < _d9.length; y++) {
				var _ec = _df.getAttribute(_d9[y]);
				if ((_ec) && (_ec.length)) {
					var _e6 = null;
					var _ed = _d9[y].substr(4);
					_e6 = trim(_ec);
					var _ee = [ _e6 ];
					if (_e6.indexOf(";") >= 0) {
						_ee = dojo.lang.map(_e6.split(";"), trim);
					}
					for ( var z = 0; z < _ee.length; z++) {
						if (!_ee[z].length) {
							continue;
						}
						var tf = function() {
							var ntf = new String(_ee[z]);
							return function(evt) {
								if (_dd[ntf]) {
									_dd[ntf](dojo.event.browser.fixEvent(evt,
											this));
								}
							};
						}();
						dojo.event.browser.addListener(_df, _ed, tf, false,
								true);
					}
				}
			}
		}
		var _f1 = _df.getAttribute(this.templateProperty);
		if (_f1) {
			_d8[_f1] = _df;
		}
		dojo.lang.forEach(dojo.widget.waiNames, function(_f2) {
			var wai = dojo.widget.wai[_f2];
			var val = _df.getAttribute(wai.name);
			if (val) {
				if (val.indexOf("-") == -1) {
					dojo.widget.wai.setAttr(_df, wai.name, "role", val);
				} else {
					var _f5 = val.split("-");
					dojo.widget.wai.setAttr(_df, wai.name, _f5[0], _f5[1]);
				}
			}
		}, this);
		var _f6 = _df.getAttribute(this.onBuildProperty);
		if (_f6) {
			eval("var node = baseNode; var widget = targetObj; " + _f6);
		}
	}
};
dojo.widget.getDojoEventsFromStr = function(str) {
	var re = /(dojoOn([a-z]+)(\s?))=/gi;
	var _f9 = str ? str.match(re) || [] : [];
	var ret = [];
	var lem = {};
	for ( var x = 0; x < _f9.length; x++) {
		if (_f9[x].length < 1) {
			continue;
		}
		var cm = _f9[x].replace(/\s/, "");
		cm = (cm.slice(0, cm.length - 1));
		if (!lem[cm]) {
			lem[cm] = true;
			ret.push(cm);
		}
	}
	return ret;
};
dojo
		.declare(
				"dojo.widget.DomWidget",
				dojo.widget.Widget,
				function() {
					if ((arguments.length > 0)
							&& (typeof arguments[0] == "object")) {
						this.create(arguments[0]);
					}
				},
				{
					templateNode : null,
					templateString : null,
					templateCssString : null,
					preventClobber : false,
					domNode : null,
					containerNode : null,
					widgetsInTemplate : false,
					addChild : function(_fe, _ff, pos, ref, _102) {
						if (!this.isContainer) {
							dojo
									.debug("dojo.widget.DomWidget.addChild() attempted on non-container widget");
							return null;
						} else {
							if (_102 == undefined) {
								_102 = this.children.length;
							}
							this.addWidgetAsDirectChild(_fe, _ff, pos, ref,
									_102);
							this.registerChild(_fe, _102);
						}
						return _fe;
					},
					addWidgetAsDirectChild : function(_103, _104, pos, ref,
							_107) {
						if ((!this.containerNode) && (!_104)) {
							this.containerNode = this.domNode;
						}
						var cn = (_104) ? _104 : this.containerNode;
						if (!pos) {
							pos = "after";
						}
						if (!ref) {
							if (!cn) {
								cn = dojo.body();
							}
							ref = cn.lastChild;
						}
						if (!_107) {
							_107 = 0;
						}
						_103.domNode.setAttribute("dojoinsertionindex", _107);
						if (!ref) {
							cn.appendChild(_103.domNode);
						} else {
							if (pos == "insertAtIndex") {
								dojo.dom.insertAtIndex(_103.domNode,
										ref.parentNode, _107);
							} else {
								if ((pos == "after") && (ref === cn.lastChild)) {
									cn.appendChild(_103.domNode);
								} else {
									dojo.dom.insertAtPosition(_103.domNode, cn,
											pos);
								}
							}
						}
					},
					registerChild : function(_109, _10a) {
						_109.dojoInsertionIndex = _10a;
						var idx = -1;
						for ( var i = 0; i < this.children.length; i++) {
							if (this.children[i].dojoInsertionIndex <= _10a) {
								idx = i;
							}
						}
						this.children.splice(idx + 1, 0, _109);
						_109.parent = this;
						_109.addedTo(this, idx + 1);
						delete dojo.widget.manager.topWidgets[_109.widgetId];
					},
					removeChild : function(_10d) {
						dojo.dom.removeNode(_10d.domNode);
						return dojo.widget.DomWidget.superclass.removeChild
								.call(this, _10d);
					},
					getFragNodeRef : function(frag) {
						if (!frag) {
							return null;
						}
						if (!frag[this.getNamespacedType()]) {
							dojo
									.raise("Error: no frag for widget type "
											+ this.getNamespacedType()
											+ ", id "
											+ this.widgetId
											+ " (maybe a widget has set it's type incorrectly)");
						}
						return frag[this.getNamespacedType()]["nodeRef"];
					},
					postInitialize : function(args, frag, _111) {
						var _112 = this.getFragNodeRef(frag);
						if (_111 && (_111.snarfChildDomOutput || !_112)) {
							_111.addWidgetAsDirectChild(this, "",
									"insertAtIndex", "",
									args["dojoinsertionindex"], _112);
						} else {
							if (_112) {
								if (this.domNode && (this.domNode !== _112)) {
									this._sourceNodeRef = dojo.dom.replaceNode(
											_112, this.domNode);
								}
							}
						}
						if (_111) {
							_111.registerChild(this, args.dojoinsertionindex);
						} else {
							dojo.widget.manager.topWidgets[this.widgetId] = this;
						}
						if (this.widgetsInTemplate) {
							var _113 = new dojo.xml.Parse();
							var _114;
							var _115 = this.domNode.getElementsByTagName("*");
							for ( var i = 0; i < _115.length; i++) {
								if (_115[i].getAttribute("dojoAttachPoint") == "subContainerWidget") {
									_114 = _115[i];
								}
								if (_115[i].getAttribute("dojoType")) {
									_115[i].setAttribute("isSubWidget", true);
								}
							}
							if (this.isContainer && !this.containerNode) {
								if (_114) {
									var src = this.getFragNodeRef(frag);
									if (src) {
										dojo.dom.moveChildren(src, _114);
										frag["dojoDontFollow"] = true;
									}
								} else {
									dojo
											.debug("No subContainerWidget node can be found in template file for widget "
													+ this);
								}
							}
							var _118 = _113.parseElement(this.domNode, null,
									true);
							dojo.widget.getParser().createSubComponents(_118,
									this);
							var _119 = [];
							var _11a = [ this ];
							var w;
							while ((w = _11a.pop())) {
								for ( var i = 0; i < w.children.length; i++) {
									var _11c = w.children[i];
									if (_11c._processedSubWidgets
											|| !_11c.extraArgs["issubwidget"]) {
										continue;
									}
									_119.push(_11c);
									if (_11c.isContainer) {
										_11a.push(_11c);
									}
								}
							}
							for ( var i = 0; i < _119.length; i++) {
								var _11d = _119[i];
								if (_11d._processedSubWidgets) {
									dojo
											.debug("This should not happen: widget._processedSubWidgets is already true!");
									return;
								}
								_11d._processedSubWidgets = true;
								if (_11d.extraArgs["dojoattachevent"]) {
									var evts = _11d.extraArgs["dojoattachevent"]
											.split(";");
									for ( var j = 0; j < evts.length; j++) {
										var _120 = null;
										var tevt = dojo.string.trim(evts[j]);
										if (tevt.indexOf(":") >= 0) {
											var _122 = tevt.split(":");
											tevt = dojo.string.trim(_122[0]);
											_120 = dojo.string.trim(_122[1]);
										}
										if (!_120) {
											_120 = tevt;
										}
										if (dojo.lang.isFunction(_11d[tevt])) {
											dojo.event.kwConnect({
												srcObj : _11d,
												srcFunc : tevt,
												targetObj : this,
												targetFunc : _120
											});
										} else {
											alert(tevt
													+ " is not a function in widget "
													+ _11d);
										}
									}
								}
								if (_11d.extraArgs["dojoattachpoint"]) {
									this[_11d.extraArgs["dojoattachpoint"]] = _11d;
								}
							}
						}
						if (this.isContainer && !frag["dojoDontFollow"]) {
							dojo.widget.getParser().createSubComponents(frag,
									this);
						}
					},
					buildRendering : function(args, frag) {
						var ts = dojo.widget._templateCache[this.widgetType];
						if (args["templatecsspath"]) {
							args["templateCssPath"] = args["templatecsspath"];
						}
						var _126 = args["templateCssPath"]
								|| this.templateCssPath;
						if (_126 && !dojo.widget._cssFiles[_126.toString()]) {
							if ((!this.templateCssString) && (_126)) {
								this.templateCssString = dojo.hostenv
										.getText(_126);
								this.templateCssPath = null;
							}
							dojo.widget._cssFiles[_126.toString()] = true;
						}
						if ((this["templateCssString"])
								&& (!dojo.widget._cssStrings[this.templateCssString])) {
							dojo.html.insertCssText(this.templateCssString,
									null, _126);
							dojo.widget._cssStrings[this.templateCssString] = true;
						}
						if ((!this.preventClobber)
								&& ((this.templatePath)
										|| (this.templateNode)
										|| ((this["templateString"]) && (this.templateString.length)) || ((typeof ts != "undefined") && ((ts["string"]) || (ts["node"]))))) {
							this.buildFromTemplate(args, frag);
						} else {
							this.domNode = this.getFragNodeRef(frag);
						}
						this.fillInTemplate(args, frag);
					},
					buildFromTemplate : function(args, frag) {
						var _129 = false;
						if (args["templatepath"]) {
							args["templatePath"] = args["templatepath"];
						}
						dojo.widget.fillFromTemplateCache(this,
								args["templatePath"], null, _129);
						var ts = dojo.widget._templateCache[this.templatePath ? this.templatePath
								.toString()
								: this.widgetType];
						if ((ts) && (!_129)) {
							if (!this.templateString.length) {
								this.templateString = ts["string"];
							}
							if (!this.templateNode) {
								this.templateNode = ts["node"];
							}
						}
						var _12b = false;
						var node = null;
						var tstr = this.templateString;
						if ((!this.templateNode) && (this.templateString)) {
							_12b = this.templateString.match(/\$\{([^\}]+)\}/g);
							if (_12b) {
								var hash = this.strings || {};
								for ( var key in dojo.widget.defaultStrings) {
									if (dojo.lang.isUndefined(hash[key])) {
										hash[key] = dojo.widget.defaultStrings[key];
									}
								}
								for ( var i = 0; i < _12b.length; i++) {
									var key = _12b[i];
									key = key.substring(2, key.length - 1);
									var kval = (key.substring(0, 5) == "this.") ? dojo.lang
											.getObjPathValue(key.substring(5),
													this)
											: hash[key];
									var _132;
									if ((kval) || (dojo.lang.isString(kval))) {
										_132 = new String((dojo.lang
												.isFunction(kval)) ? kval.call(
												this, key, this.templateString)
												: kval);
										while (_132.indexOf("\"") > -1) {
											_132 = _132.replace("\"", "&quot;");
										}
										tstr = tstr.replace(_12b[i], _132);
									}
								}
							} else {
								this.templateNode = this.createNodesFromText(
										this.templateString, true)[0];
								if (!_129) {
									ts.node = this.templateNode;
								}
							}
						}
						if ((!this.templateNode) && (!_12b)) {
							dojo
									.debug("DomWidget.buildFromTemplate: could not create template");
							return false;
						} else {
							if (!_12b) {
								node = this.templateNode.cloneNode(true);
								if (!node) {
									return false;
								}
							} else {
								node = this.createNodesFromText(tstr, true)[0];
							}
						}
						this.domNode = node;
						this.attachTemplateNodes();
						if (this.isContainer && this.containerNode) {
							var src = this.getFragNodeRef(frag);
							if (src) {
								dojo.dom.moveChildren(src, this.containerNode);
							}
						}
					},
					attachTemplateNodes : function(_134, _135) {
						if (!_134) {
							_134 = this.domNode;
						}
						if (!_135) {
							_135 = this;
						}
						return dojo.widget
								.attachTemplateNodes(
										_134,
										_135,
										dojo.widget
												.getDojoEventsFromStr(this.templateString));
					},
					fillInTemplate : function() {
					},
					destroyRendering : function() {
						try {
							dojo.dom.destroyNode(this.domNode);
							delete this.domNode;
						} catch (e) {
						}
						if (this._sourceNodeRef) {
							try {
								dojo.dom.destroyNode(this._sourceNodeRef);
							} catch (e) {
							}
						}
					},
					createNodesFromText : function() {
						dojo
								.unimplemented("dojo.widget.DomWidget.createNodesFromText");
					}
				});
dojo.provide("dojo.html.layout");
dojo.require("dojo.html.common");
dojo.require("dojo.html.style");
dojo.require("dojo.html.display");
dojo.html.sumAncestorProperties = function(node, prop) {
	node = dojo.byId(node);
	if (!node) {
		return 0;
	}
	var _138 = 0;
	while (node) {
		if (dojo.html.getComputedStyle(node, "position") == "fixed") {
			return 0;
		}
		var val = node[prop];
		if (val) {
			_138 += val - 0;
			if (node == dojo.body()) {
				break;
			}
		}
		node = node.parentNode;
	}
	return _138;
};
dojo.html.setStyleAttributes = function(node, _13b) {
	node = dojo.byId(node);
	var _13c = _13b.replace(/(;)?\s*$/, "").split(";");
	for ( var i = 0; i < _13c.length; i++) {
		var _13e = _13c[i].split(":");
		var name = _13e[0].replace(/\s*$/, "").replace(/^\s*/, "")
				.toLowerCase();
		var _140 = _13e[1].replace(/\s*$/, "").replace(/^\s*/, "");
		switch (name) {
		case "opacity":
			dojo.html.setOpacity(node, _140);
			break;
		case "content-height":
			dojo.html.setContentBox(node, {
				height : _140
			});
			break;
		case "content-width":
			dojo.html.setContentBox(node, {
				width : _140
			});
			break;
		case "outer-height":
			dojo.html.setMarginBox(node, {
				height : _140
			});
			break;
		case "outer-width":
			dojo.html.setMarginBox(node, {
				width : _140
			});
			break;
		default:
			node.style[dojo.html.toCamelCase(name)] = _140;
		}
	}
};
dojo.html.boxSizing = {
	MARGIN_BOX : "margin-box",
	BORDER_BOX : "border-box",
	PADDING_BOX : "padding-box",
	CONTENT_BOX : "content-box"
};
dojo.html.getAbsolutePosition = dojo.html.abs = function(node, _142, _143) {
	node = dojo.byId(node, node.ownerDocument);
	var ret = {
		x : 0,
		y : 0
	};
	var bs = dojo.html.boxSizing;
	if (!_143) {
		_143 = bs.CONTENT_BOX;
	}
	var _146 = 2;
	var _147;
	switch (_143) {
	case bs.MARGIN_BOX:
		_147 = 3;
		break;
	case bs.BORDER_BOX:
		_147 = 2;
		break;
	case bs.PADDING_BOX:
	default:
		_147 = 1;
		break;
	case bs.CONTENT_BOX:
		_147 = 0;
		break;
	}
	var h = dojo.render.html;
	var db = document["body"] || document["documentElement"];
	if (h.ie) {
		with (node.getBoundingClientRect()) {
			ret.x = left - 2;
			ret.y = top - 2;
		}
	} else {
		if (document.getBoxObjectFor) {
			_146 = 1;
			try {
				var bo = document.getBoxObjectFor(node);
				ret.x = bo.x
						- dojo.html.sumAncestorProperties(node, "scrollLeft");
				ret.y = bo.y
						- dojo.html.sumAncestorProperties(node, "scrollTop");
			} catch (e) {
			}
		} else {
			if (node["offsetParent"]) {
				var _14b;
				if ((h.safari)
						&& (node.style.getPropertyValue("position") == "absolute")
						&& (node.parentNode == db)) {
					_14b = db;
				} else {
					_14b = db.parentNode;
				}
				if (node.parentNode != db) {
					var nd = node;
					if (dojo.render.html.opera) {
						nd = db;
					}
					ret.x -= dojo.html.sumAncestorProperties(nd, "scrollLeft");
					ret.y -= dojo.html.sumAncestorProperties(nd, "scrollTop");
				}
				var _14d = node;
				do {
					var n = _14d["offsetLeft"];
					if (!h.opera || n > 0) {
						ret.x += isNaN(n) ? 0 : n;
					}
					var m = _14d["offsetTop"];
					ret.y += isNaN(m) ? 0 : m;
					_14d = _14d.offsetParent;
				} while ((_14d != _14b) && (_14d != null));
			} else {
				if (node["x"] && node["y"]) {
					ret.x += isNaN(node.x) ? 0 : node.x;
					ret.y += isNaN(node.y) ? 0 : node.y;
				}
			}
		}
	}
	if (_142) {
		var _150 = dojo.html.getScroll();
		ret.y += _150.top;
		ret.x += _150.left;
	}
	var _151 = [ dojo.html.getPaddingExtent, dojo.html.getBorderExtent,
			dojo.html.getMarginExtent ];
	if (_146 > _147) {
		for ( var i = _147; i < _146; ++i) {
			ret.y += _151[i](node, "top");
			ret.x += _151[i](node, "left");
		}
	} else {
		if (_146 < _147) {
			for ( var i = _147; i > _146; --i) {
				ret.y -= _151[i - 1](node, "top");
				ret.x -= _151[i - 1](node, "left");
			}
		}
	}
	ret.top = ret.y;
	ret.left = ret.x;
	return ret;
};
dojo.html.isPositionAbsolute = function(node) {
	return (dojo.html.getComputedStyle(node, "position") == "absolute");
};
dojo.html._sumPixelValues = function(node, _155, _156) {
	var _157 = 0;
	for ( var x = 0; x < _155.length; x++) {
		_157 += dojo.html.getPixelValue(node, _155[x], _156);
	}
	return _157;
};
dojo.html.getMargin = function(node) {
	return {
		width : dojo.html._sumPixelValues(node,
				[ "margin-left", "margin-right" ], (dojo.html.getComputedStyle(
						node, "position") == "absolute")),
		height : dojo.html._sumPixelValues(node, [ "margin-top",
				"margin-bottom" ], (dojo.html
				.getComputedStyle(node, "position") == "absolute"))
	};
};
dojo.html.getBorder = function(node) {
	return {
		width : dojo.html.getBorderExtent(node, "left")
				+ dojo.html.getBorderExtent(node, "right"),
		height : dojo.html.getBorderExtent(node, "top")
				+ dojo.html.getBorderExtent(node, "bottom")
	};
};
dojo.html.getBorderExtent = function(node, side) {
	return (dojo.html.getStyle(node, "border-" + side + "-style") == "none" ? 0
			: dojo.html.getPixelValue(node, "border-" + side + "-width"));
};
dojo.html.getMarginExtent = function(node, side) {
	return dojo.html._sumPixelValues(node, [ "margin-" + side ], dojo.html
			.isPositionAbsolute(node));
};
dojo.html.getPaddingExtent = function(node, side) {
	return dojo.html._sumPixelValues(node, [ "padding-" + side ], true);
};
dojo.html.getPadding = function(node) {
	return {
		width : dojo.html._sumPixelValues(node, [ "padding-left",
				"padding-right" ], true),
		height : dojo.html._sumPixelValues(node, [ "padding-top",
				"padding-bottom" ], true)
	};
};
dojo.html.getPadBorder = function(node) {
	var pad = dojo.html.getPadding(node);
	var _164 = dojo.html.getBorder(node);
	return {
		width : pad.width + _164.width,
		height : pad.height + _164.height
	};
};
dojo.html.getBoxSizing = function(node) {
	var h = dojo.render.html;
	var bs = dojo.html.boxSizing;
	if (((h.ie) || (h.opera)) && node.nodeName.toLowerCase() != "img") {
		var cm = document["compatMode"];
		if ((cm == "BackCompat") || (cm == "QuirksMode")) {
			return bs.BORDER_BOX;
		} else {
			return bs.CONTENT_BOX;
		}
	} else {
		if (arguments.length == 0) {
			node = document.documentElement;
		}
		var _169;
		if (!h.ie) {
			_169 = dojo.html.getStyle(node, "-moz-box-sizing");
			if (!_169) {
				_169 = dojo.html.getStyle(node, "box-sizing");
			}
		}
		return (_169 ? _169 : bs.CONTENT_BOX);
	}
};
dojo.html.isBorderBox = function(node) {
	return (dojo.html.getBoxSizing(node) == dojo.html.boxSizing.BORDER_BOX);
};
dojo.html.getBorderBox = function(node) {
	node = dojo.byId(node);
	return {
		width : node.offsetWidth,
		height : node.offsetHeight
	};
};
dojo.html.getPaddingBox = function(node) {
	var box = dojo.html.getBorderBox(node);
	var _16e = dojo.html.getBorder(node);
	return {
		width : box.width - _16e.width,
		height : box.height - _16e.height
	};
};
dojo.html.getContentBox = function(node) {
	node = dojo.byId(node);
	var _170 = dojo.html.getPadBorder(node);
	return {
		width : node.offsetWidth - _170.width,
		height : node.offsetHeight - _170.height
	};
};
dojo.html.setContentBox = function(node, args) {
	node = dojo.byId(node);
	var _173 = 0;
	var _174 = 0;
	var isbb = dojo.html.isBorderBox(node);
	var _176 = (isbb ? dojo.html.getPadBorder(node) : {
		width : 0,
		height : 0
	});
	var ret = {};
	if (typeof args.width != "undefined") {
		_173 = args.width + _176.width;
		ret.width = dojo.html.setPositivePixelValue(node, "width", _173);
	}
	if (typeof args.height != "undefined") {
		_174 = args.height + _176.height;
		ret.height = dojo.html.setPositivePixelValue(node, "height", _174);
	}
	return ret;
};
dojo.html.getMarginBox = function(node) {
	var _179 = dojo.html.getBorderBox(node);
	var _17a = dojo.html.getMargin(node);
	return {
		width : _179.width + _17a.width,
		height : _179.height + _17a.height
	};
};
dojo.html.setMarginBox = function(node, args) {
	node = dojo.byId(node);
	var _17d = 0;
	var _17e = 0;
	var isbb = dojo.html.isBorderBox(node);
	var _180 = (!isbb ? dojo.html.getPadBorder(node) : {
		width : 0,
		height : 0
	});
	var _181 = dojo.html.getMargin(node);
	var ret = {};
	if (typeof args.width != "undefined") {
		_17d = args.width - _180.width;
		_17d -= _181.width;
		ret.width = dojo.html.setPositivePixelValue(node, "width", _17d);
	}
	if (typeof args.height != "undefined") {
		_17e = args.height - _180.height;
		_17e -= _181.height;
		ret.height = dojo.html.setPositivePixelValue(node, "height", _17e);
	}
	return ret;
};
dojo.html.getElementBox = function(node, type) {
	var bs = dojo.html.boxSizing;
	switch (type) {
	case bs.MARGIN_BOX:
		return dojo.html.getMarginBox(node);
	case bs.BORDER_BOX:
		return dojo.html.getBorderBox(node);
	case bs.PADDING_BOX:
		return dojo.html.getPaddingBox(node);
	case bs.CONTENT_BOX:
	default:
		return dojo.html.getContentBox(node);
	}
};
dojo.html.toCoordinateObject = dojo.html.toCoordinateArray = function(_186,
		_187, _188) {
	if (_186 instanceof Array || typeof _186 == "array") {
		dojo
				.deprecated(
						"dojo.html.toCoordinateArray",
						"use dojo.html.toCoordinateObject({left: , top: , width: , height: }) instead",
						"0.5");
		while (_186.length < 4) {
			_186.push(0);
		}
		while (_186.length > 4) {
			_186.pop();
		}
		var ret = {
			left : _186[0],
			top : _186[1],
			width : _186[2],
			height : _186[3]
		};
	} else {
		if (!_186.nodeType
				&& !(_186 instanceof String || typeof _186 == "string")
				&& ("width" in _186 || "height" in _186 || "left" in _186
						|| "x" in _186 || "top" in _186 || "y" in _186)) {
			var ret = {
				left : _186.left || _186.x || 0,
				top : _186.top || _186.y || 0,
				width : _186.width || 0,
				height : _186.height || 0
			};
		} else {
			var node = dojo.byId(_186);
			var pos = dojo.html.abs(node, _187, _188);
			var _18c = dojo.html.getMarginBox(node);
			var ret = {
				left : pos.left,
				top : pos.top,
				width : _18c.width,
				height : _18c.height
			};
		}
	}
	ret.x = ret.left;
	ret.y = ret.top;
	return ret;
};
dojo.html.setMarginBoxWidth = dojo.html.setOuterWidth = function(node, _18e) {
	return dojo.html._callDeprecated("setMarginBoxWidth", "setMarginBox",
			arguments, "width");
};
dojo.html.setMarginBoxHeight = dojo.html.setOuterHeight = function() {
	return dojo.html._callDeprecated("setMarginBoxHeight", "setMarginBox",
			arguments, "height");
};
dojo.html.getMarginBoxWidth = dojo.html.getOuterWidth = function() {
	return dojo.html._callDeprecated("getMarginBoxWidth", "getMarginBox",
			arguments, null, "width");
};
dojo.html.getMarginBoxHeight = dojo.html.getOuterHeight = function() {
	return dojo.html._callDeprecated("getMarginBoxHeight", "getMarginBox",
			arguments, null, "height");
};
dojo.html.getTotalOffset = function(node, type, _191) {
	return dojo.html._callDeprecated("getTotalOffset", "getAbsolutePosition",
			arguments, null, type);
};
dojo.html.getAbsoluteX = function(node, _193) {
	return dojo.html._callDeprecated("getAbsoluteX", "getAbsolutePosition",
			arguments, null, "x");
};
dojo.html.getAbsoluteY = function(node, _195) {
	return dojo.html._callDeprecated("getAbsoluteY", "getAbsolutePosition",
			arguments, null, "y");
};
dojo.html.totalOffsetLeft = function(node, _197) {
	return dojo.html._callDeprecated("totalOffsetLeft", "getAbsolutePosition",
			arguments, null, "left");
};
dojo.html.totalOffsetTop = function(node, _199) {
	return dojo.html._callDeprecated("totalOffsetTop", "getAbsolutePosition",
			arguments, null, "top");
};
dojo.html.getMarginWidth = function(node) {
	return dojo.html._callDeprecated("getMarginWidth", "getMargin", arguments,
			null, "width");
};
dojo.html.getMarginHeight = function(node) {
	return dojo.html._callDeprecated("getMarginHeight", "getMargin", arguments,
			null, "height");
};
dojo.html.getBorderWidth = function(node) {
	return dojo.html._callDeprecated("getBorderWidth", "getBorder", arguments,
			null, "width");
};
dojo.html.getBorderHeight = function(node) {
	return dojo.html._callDeprecated("getBorderHeight", "getBorder", arguments,
			null, "height");
};
dojo.html.getPaddingWidth = function(node) {
	return dojo.html._callDeprecated("getPaddingWidth", "getPadding",
			arguments, null, "width");
};
dojo.html.getPaddingHeight = function(node) {
	return dojo.html._callDeprecated("getPaddingHeight", "getPadding",
			arguments, null, "height");
};
dojo.html.getPadBorderWidth = function(node) {
	return dojo.html._callDeprecated("getPadBorderWidth", "getPadBorder",
			arguments, null, "width");
};
dojo.html.getPadBorderHeight = function(node) {
	return dojo.html._callDeprecated("getPadBorderHeight", "getPadBorder",
			arguments, null, "height");
};
dojo.html.getBorderBoxWidth = dojo.html.getInnerWidth = function() {
	return dojo.html._callDeprecated("getBorderBoxWidth", "getBorderBox",
			arguments, null, "width");
};
dojo.html.getBorderBoxHeight = dojo.html.getInnerHeight = function() {
	return dojo.html._callDeprecated("getBorderBoxHeight", "getBorderBox",
			arguments, null, "height");
};
dojo.html.getContentBoxWidth = dojo.html.getContentWidth = function() {
	return dojo.html._callDeprecated("getContentBoxWidth", "getContentBox",
			arguments, null, "width");
};
dojo.html.getContentBoxHeight = dojo.html.getContentHeight = function() {
	return dojo.html._callDeprecated("getContentBoxHeight", "getContentBox",
			arguments, null, "height");
};
dojo.html.setContentBoxWidth = dojo.html.setContentWidth = function(node, _1a3) {
	return dojo.html._callDeprecated("setContentBoxWidth", "setContentBox",
			arguments, "width");
};
dojo.html.setContentBoxHeight = dojo.html.setContentHeight = function(node,
		_1a5) {
	return dojo.html._callDeprecated("setContentBoxHeight", "setContentBox",
			arguments, "height");
};
dojo.provide("dojo.html.util");
dojo.html.getElementWindow = function(_1a6) {
	return dojo.html.getDocumentWindow(_1a6.ownerDocument);
};
dojo.html.getDocumentWindow = function(doc) {
	if (dojo.render.html.safari && !doc._parentWindow) {
		var fix = function(win) {
			win.document._parentWindow = win;
			for ( var i = 0; i < win.frames.length; i++) {
				fix(win.frames[i]);
			}
		};
		fix(window.top);
	}
	if (dojo.render.html.ie && window !== document.parentWindow
			&& !doc._parentWindow) {
		doc.parentWindow.execScript("document._parentWindow = window;",
				"Javascript");
		var win = doc._parentWindow;
		doc._parentWindow = null;
		return win;
	}
	return doc._parentWindow || doc.parentWindow || doc.defaultView;
};
dojo.html.gravity = function(node, e) {
	node = dojo.byId(node);
	var _1ae = dojo.html.getCursorPosition(e);
	with (dojo.html) {
		var _1af = getAbsolutePosition(node, true);
		var bb = getBorderBox(node);
		var _1b1 = _1af.x + (bb.width / 2);
		var _1b2 = _1af.y + (bb.height / 2);
	}
	with (dojo.html.gravity) {
		return ((_1ae.x < _1b1 ? WEST : EAST) | (_1ae.y < _1b2 ? NORTH : SOUTH));
	}
};
dojo.html.gravity.NORTH = 1;
dojo.html.gravity.SOUTH = 1 << 1;
dojo.html.gravity.EAST = 1 << 2;
dojo.html.gravity.WEST = 1 << 3;
dojo.html.overElement = function(_1b3, e) {
	_1b3 = dojo.byId(_1b3);
	var _1b5 = dojo.html.getCursorPosition(e);
	var bb = dojo.html.getBorderBox(_1b3);
	var _1b7 = dojo.html.getAbsolutePosition(_1b3, true,
			dojo.html.boxSizing.BORDER_BOX);
	var top = _1b7.y;
	var _1b9 = top + bb.height;
	var left = _1b7.x;
	var _1bb = left + bb.width;
	return (_1b5.x >= left && _1b5.x <= _1bb && _1b5.y >= top && _1b5.y <= _1b9);
};
dojo.html.renderedTextContent = function(node) {
	node = dojo.byId(node);
	var _1bd = "";
	if (node == null) {
		return _1bd;
	}
	for ( var i = 0; i < node.childNodes.length; i++) {
		switch (node.childNodes[i].nodeType) {
		case 1:
		case 5:
			var _1bf = "unknown";
			try {
				_1bf = dojo.html.getStyle(node.childNodes[i], "display");
			} catch (E) {
			}
			switch (_1bf) {
			case "block":
			case "list-item":
			case "run-in":
			case "table":
			case "table-row-group":
			case "table-header-group":
			case "table-footer-group":
			case "table-row":
			case "table-column-group":
			case "table-column":
			case "table-cell":
			case "table-caption":
				_1bd += "\n";
				_1bd += dojo.html.renderedTextContent(node.childNodes[i]);
				_1bd += "\n";
				break;
			case "none":
				break;
			default:
				if (node.childNodes[i].tagName
						&& node.childNodes[i].tagName.toLowerCase() == "br") {
					_1bd += "\n";
				} else {
					_1bd += dojo.html.renderedTextContent(node.childNodes[i]);
				}
				break;
			}
			break;
		case 3:
		case 2:
		case 4:
			var text = node.childNodes[i].nodeValue;
			var _1c1 = "unknown";
			try {
				_1c1 = dojo.html.getStyle(node, "text-transform");
			} catch (E) {
			}
			switch (_1c1) {
			case "capitalize":
				var _1c2 = text.split(" ");
				for ( var i = 0; i < _1c2.length; i++) {
					_1c2[i] = _1c2[i].charAt(0).toUpperCase()
							+ _1c2[i].substring(1);
				}
				text = _1c2.join(" ");
				break;
			case "uppercase":
				text = text.toUpperCase();
				break;
			case "lowercase":
				text = text.toLowerCase();
				break;
			default:
				break;
			}
			switch (_1c1) {
			case "nowrap":
				break;
			case "pre-wrap":
				break;
			case "pre-line":
				break;
			case "pre":
				break;
			default:
				text = text.replace(/\s+/, " ");
				if (/\s$/.test(_1bd)) {
					text.replace(/^\s/, "");
				}
				break;
			}
			_1bd += text;
			break;
		default:
			break;
		}
	}
	return _1bd;
};
dojo.html.createNodesFromText = function(txt, trim) {
	if (trim) {
		txt = txt.replace(/^\s+|\s+$/g, "");
	}
	var tn = dojo.doc().createElement("div");
	tn.style.visibility = "hidden";
	dojo.body().appendChild(tn);
	var _1c6 = "none";
	if ((/^<t[dh][\s\r\n>]/i).test(txt.replace(/^\s+/))) {
		txt = "<table><tbody><tr>" + txt + "</tr></tbody></table>";
		_1c6 = "cell";
	} else {
		if ((/^<tr[\s\r\n>]/i).test(txt.replace(/^\s+/))) {
			txt = "<table><tbody>" + txt + "</tbody></table>";
			_1c6 = "row";
		} else {
			if ((/^<(thead|tbody|tfoot)[\s\r\n>]/i).test(txt.replace(/^\s+/))) {
				txt = "<table>" + txt + "</table>";
				_1c6 = "section";
			}
		}
	}
	tn.innerHTML = txt;
	if (tn["normalize"]) {
		tn.normalize();
	}
	var _1c7 = null;
	switch (_1c6) {
	case "cell":
		_1c7 = tn.getElementsByTagName("tr")[0];
		break;
	case "row":
		_1c7 = tn.getElementsByTagName("tbody")[0];
		break;
	case "section":
		_1c7 = tn.getElementsByTagName("table")[0];
		break;
	default:
		_1c7 = tn;
		break;
	}
	var _1c8 = [];
	for ( var x = 0; x < _1c7.childNodes.length; x++) {
		_1c8.push(_1c7.childNodes[x].cloneNode(true));
	}
	tn.style.display = "none";
	dojo.html.destroyNode(tn);
	return _1c8;
};
dojo.html.placeOnScreen = function(node, _1cb, _1cc, _1cd, _1ce, _1cf, _1d0) {
	if (_1cb instanceof Array || typeof _1cb == "array") {
		_1d0 = _1cf;
		_1cf = _1ce;
		_1ce = _1cd;
		_1cd = _1cc;
		_1cc = _1cb[1];
		_1cb = _1cb[0];
	}
	if (_1cf instanceof String || typeof _1cf == "string") {
		_1cf = _1cf.split(",");
	}
	if (!isNaN(_1cd)) {
		_1cd = [ Number(_1cd), Number(_1cd) ];
	} else {
		if (!(_1cd instanceof Array || typeof _1cd == "array")) {
			_1cd = [ 0, 0 ];
		}
	}
	var _1d1 = dojo.html.getScroll().offset;
	var view = dojo.html.getViewport();
	node = dojo.byId(node);
	var _1d3 = node.style.display;
	node.style.display = "";
	var bb = dojo.html.getBorderBox(node);
	var w = bb.width;
	var h = bb.height;
	node.style.display = _1d3;
	if (!(_1cf instanceof Array || typeof _1cf == "array")) {
		_1cf = [ "TL" ];
	}
	var _1d7, _1d8, _1d9 = Infinity, _1da;
	for ( var _1db = 0; _1db < _1cf.length; ++_1db) {
		var _1dc = _1cf[_1db];
		var _1dd = true;
		var tryX = _1cb - (_1dc.charAt(1) == "L" ? 0 : w) + _1cd[0]
				* (_1dc.charAt(1) == "L" ? 1 : -1);
		var tryY = _1cc - (_1dc.charAt(0) == "T" ? 0 : h) + _1cd[1]
				* (_1dc.charAt(0) == "T" ? 1 : -1);
		if (_1ce) {
			tryX -= _1d1.x;
			tryY -= _1d1.y;
		}
		if (tryX < 0) {
			tryX = 0;
			_1dd = false;
		}
		if (tryY < 0) {
			tryY = 0;
			_1dd = false;
		}
		var x = tryX + w;
		if (x > view.width) {
			x = view.width - w;
			_1dd = false;
		} else {
			x = tryX;
		}
		x = Math.max(_1cd[0], x) + _1d1.x;
		var y = tryY + h;
		if (y > view.height) {
			y = view.height - h;
			_1dd = false;
		} else {
			y = tryY;
		}
		y = Math.max(_1cd[1], y) + _1d1.y;
		if (_1dd) {
			_1d7 = x;
			_1d8 = y;
			_1d9 = 0;
			_1da = _1dc;
			break;
		} else {
			var dist = Math.pow(x - tryX - _1d1.x, 2)
					+ Math.pow(y - tryY - _1d1.y, 2);
			if (_1d9 > dist) {
				_1d9 = dist;
				_1d7 = x;
				_1d8 = y;
				_1da = _1dc;
			}
		}
	}
	if (!_1d0) {
		node.style.left = _1d7 + "px";
		node.style.top = _1d8 + "px";
	}
	return {
		left : _1d7,
		top : _1d8,
		x : _1d7,
		y : _1d8,
		dist : _1d9,
		corner : _1da
	};
};
dojo.html.placeOnScreenPoint = function(node, _1e4, _1e5, _1e6, _1e7) {
	dojo.deprecated("dojo.html.placeOnScreenPoint",
			"use dojo.html.placeOnScreen() instead", "0.5");
	return dojo.html.placeOnScreen(node, _1e4, _1e5, _1e6, _1e7, [ "TL", "TR",
			"BL", "BR" ]);
};
dojo.html.placeOnScreenAroundElement = function(node, _1e9, _1ea, _1eb, _1ec,
		_1ed) {
	var best, _1ef = Infinity;
	_1e9 = dojo.byId(_1e9);
	var _1f0 = _1e9.style.display;
	_1e9.style.display = "";
	var mb = dojo.html.getElementBox(_1e9, _1eb);
	var _1f2 = mb.width;
	var _1f3 = mb.height;
	var _1f4 = dojo.html.getAbsolutePosition(_1e9, true, _1eb);
	_1e9.style.display = _1f0;
	for ( var _1f5 in _1ec) {
		var pos, _1f7, _1f8;
		var _1f9 = _1ec[_1f5];
		_1f7 = _1f4.x + (_1f5.charAt(1) == "L" ? 0 : _1f2);
		_1f8 = _1f4.y + (_1f5.charAt(0) == "T" ? 0 : _1f3);
		pos = dojo.html.placeOnScreen(node, _1f7, _1f8, _1ea, true, _1f9, true);
		if (pos.dist == 0) {
			best = pos;
			break;
		} else {
			if (_1ef > pos.dist) {
				_1ef = pos.dist;
				best = pos;
			}
		}
	}
	if (!_1ed) {
		node.style.left = best.left + "px";
		node.style.top = best.top + "px";
	}
	return best;
};
dojo.html.scrollIntoView = function(node) {
	if (!node) {
		return;
	}
	if (dojo.render.html.ie) {
		if (dojo.html.getBorderBox(node.parentNode).height <= node.parentNode.scrollHeight) {
			node.scrollIntoView(false);
		}
	} else {
		if (dojo.render.html.mozilla) {
			node.scrollIntoView(false);
		} else {
			var _1fb = node.parentNode;
			var _1fc = _1fb.scrollTop + dojo.html.getBorderBox(_1fb).height;
			var _1fd = node.offsetTop + dojo.html.getMarginBox(node).height;
			if (_1fc < _1fd) {
				_1fb.scrollTop += (_1fd - _1fc);
			} else {
				if (_1fb.scrollTop > node.offsetTop) {
					_1fb.scrollTop -= (_1fb.scrollTop - node.offsetTop);
				}
			}
		}
	}
};
dojo.provide("dojo.gfx.color");
dojo.require("dojo.lang.common");
dojo.require("dojo.lang.array");
dojo.gfx.color.Color = function(r, g, b, a) {
	if (dojo.lang.isArray(r)) {
		this.r = r[0];
		this.g = r[1];
		this.b = r[2];
		this.a = r[3] || 1;
	} else {
		if (dojo.lang.isString(r)) {
			var rgb = dojo.gfx.color.extractRGB(r);
			this.r = rgb[0];
			this.g = rgb[1];
			this.b = rgb[2];
			this.a = g || 1;
		} else {
			if (r instanceof dojo.gfx.color.Color) {
				this.r = r.r;
				this.b = r.b;
				this.g = r.g;
				this.a = r.a;
			} else {
				this.r = r;
				this.g = g;
				this.b = b;
				this.a = a;
			}
		}
	}
};
dojo.gfx.color.Color.fromArray = function(arr) {
	return new dojo.gfx.color.Color(arr[0], arr[1], arr[2], arr[3]);
};
dojo.extend(dojo.gfx.color.Color, {
	toRgb : function(_204) {
		if (_204) {
			return this.toRgba();
		} else {
			return [ this.r, this.g, this.b ];
		}
	},
	toRgba : function() {
		return [ this.r, this.g, this.b, this.a ];
	},
	toHex : function() {
		return dojo.gfx.color.rgb2hex(this.toRgb());
	},
	toCss : function() {
		return "rgb(" + this.toRgb().join() + ")";
	},
	toString : function() {
		return this.toHex();
	},
	blend : function(_205, _206) {
		var rgb = null;
		if (dojo.lang.isArray(_205)) {
			rgb = _205;
		} else {
			if (_205 instanceof dojo.gfx.color.Color) {
				rgb = _205.toRgb();
			} else {
				rgb = new dojo.gfx.color.Color(_205).toRgb();
			}
		}
		return dojo.gfx.color.blend(this.toRgb(), rgb, _206);
	}
});
dojo.gfx.color.named = {
	white : [ 255, 255, 255 ],
	black : [ 0, 0, 0 ],
	red : [ 255, 0, 0 ],
	green : [ 0, 255, 0 ],
	lime : [ 0, 255, 0 ],
	blue : [ 0, 0, 255 ],
	navy : [ 0, 0, 128 ],
	gray : [ 128, 128, 128 ],
	silver : [ 192, 192, 192 ]
};
dojo.gfx.color.blend = function(a, b, _20a) {
	if (typeof a == "string") {
		return dojo.gfx.color.blendHex(a, b, _20a);
	}
	if (!_20a) {
		_20a = 0;
	}
	_20a = Math.min(Math.max(-1, _20a), 1);
	_20a = ((_20a + 1) / 2);
	var c = [];
	for ( var x = 0; x < 3; x++) {
		c[x] = parseInt(b[x] + ((a[x] - b[x]) * _20a));
	}
	return c;
};
dojo.gfx.color.blendHex = function(a, b, _20f) {
	return dojo.gfx.color.rgb2hex(dojo.gfx.color.blend(dojo.gfx.color
			.hex2rgb(a), dojo.gfx.color.hex2rgb(b), _20f));
};
dojo.gfx.color.extractRGB = function(_210) {
	var hex = "0123456789abcdef";
	_210 = _210.toLowerCase();
	if (_210.indexOf("rgb") == 0) {
		var _212 = _210.match(/rgba*\((\d+), *(\d+), *(\d+)/i);
		var ret = _212.splice(1, 3);
		return ret;
	} else {
		var _214 = dojo.gfx.color.hex2rgb(_210);
		if (_214) {
			return _214;
		} else {
			return dojo.gfx.color.named[_210] || [ 255, 255, 255 ];
		}
	}
};
dojo.gfx.color.hex2rgb = function(hex) {
	var _216 = "0123456789ABCDEF";
	var rgb = new Array(3);
	if (hex.indexOf("#") == 0) {
		hex = hex.substring(1);
	}
	hex = hex.toUpperCase();
	if (hex.replace(new RegExp("[" + _216 + "]", "g"), "") != "") {
		return null;
	}
	if (hex.length == 3) {
		rgb[0] = hex.charAt(0) + hex.charAt(0);
		rgb[1] = hex.charAt(1) + hex.charAt(1);
		rgb[2] = hex.charAt(2) + hex.charAt(2);
	} else {
		rgb[0] = hex.substring(0, 2);
		rgb[1] = hex.substring(2, 4);
		rgb[2] = hex.substring(4);
	}
	for ( var i = 0; i < rgb.length; i++) {
		rgb[i] = _216.indexOf(rgb[i].charAt(0)) * 16
				+ _216.indexOf(rgb[i].charAt(1));
	}
	return rgb;
};
dojo.gfx.color.rgb2hex = function(r, g, b) {
	if (dojo.lang.isArray(r)) {
		g = r[1] || 0;
		b = r[2] || 0;
		r = r[0] || 0;
	}
	var ret = dojo.lang.map([ r, g, b ], function(x) {
		x = new Number(x);
		var s = x.toString(16);
		while (s.length < 2) {
			s = "0" + s;
		}
		return s;
	});
	ret.unshift("#");
	return ret.join("");
};
dojo.provide("dojo.lfx.Animation");
dojo.require("dojo.lang.func");
dojo.lfx.Line = function(_21f, end) {
	this.start = _21f;
	this.end = end;
	if (dojo.lang.isArray(_21f)) {
		var diff = [];
		dojo.lang.forEach(this.start, function(s, i) {
			diff[i] = this.end[i] - s;
		}, this);
		this.getValue = function(n) {
			var res = [];
			dojo.lang.forEach(this.start, function(s, i) {
				res[i] = (diff[i] * n) + s;
			}, this);
			return res;
		};
	} else {
		var diff = end - _21f;
		this.getValue = function(n) {
			return (diff * n) + this.start;
		};
	}
};
if ((dojo.render.html.khtml) && (!dojo.render.html.safari)) {
	dojo.lfx.easeDefault = function(n) {
		return (parseFloat("0.5") + ((Math.sin((n + parseFloat("1.5"))
				* Math.PI)) / 2));
	};
} else {
	dojo.lfx.easeDefault = function(n) {
		return (0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2));
	};
}
dojo.lfx.easeIn = function(n) {
	return Math.pow(n, 3);
};
dojo.lfx.easeOut = function(n) {
	return (1 - Math.pow(1 - n, 3));
};
dojo.lfx.easeInOut = function(n) {
	return ((3 * Math.pow(n, 2)) - (2 * Math.pow(n, 3)));
};
dojo.lfx.IAnimation = function() {
};
dojo.lang.extend(dojo.lfx.IAnimation, {
	curve : null,
	duration : 1000,
	easing : null,
	repeatCount : 0,
	rate : 10,
	handler : null,
	beforeBegin : null,
	onBegin : null,
	onAnimate : null,
	onEnd : null,
	onPlay : null,
	onPause : null,
	onStop : null,
	play : null,
	pause : null,
	stop : null,
	connect : function(evt, _22f, _230) {
		if (!_230) {
			_230 = _22f;
			_22f = this;
		}
		_230 = dojo.lang.hitch(_22f, _230);
		var _231 = this[evt] || function() {
		};
		this[evt] = function() {
			var ret = _231.apply(this, arguments);
			_230.apply(this, arguments);
			return ret;
		};
		return this;
	},
	fire : function(evt, args) {
		if (this[evt]) {
			this[evt].apply(this, (args || []));
		}
		return this;
	},
	repeat : function(_235) {
		this.repeatCount = _235;
		return this;
	},
	_active : false,
	_paused : false
});
dojo.lfx.Animation = function(_236, _237, _238, _239, _23a, rate) {
	dojo.lfx.IAnimation.call(this);
	if (dojo.lang.isNumber(_236) || (!_236 && _237.getValue)) {
		rate = _23a;
		_23a = _239;
		_239 = _238;
		_238 = _237;
		_237 = _236;
		_236 = null;
	} else {
		if (_236.getValue || dojo.lang.isArray(_236)) {
			rate = _239;
			_23a = _238;
			_239 = _237;
			_238 = _236;
			_237 = null;
			_236 = null;
		}
	}
	if (dojo.lang.isArray(_238)) {
		this.curve = new dojo.lfx.Line(_238[0], _238[1]);
	} else {
		this.curve = _238;
	}
	if (_237 != null && _237 > 0) {
		this.duration = _237;
	}
	if (_23a) {
		this.repeatCount = _23a;
	}
	if (rate) {
		this.rate = rate;
	}
	if (_236) {
		dojo.lang.forEach([ "handler", "beforeBegin", "onBegin", "onEnd",
				"onPlay", "onStop", "onAnimate" ], function(item) {
			if (_236[item]) {
				this.connect(item, _236[item]);
			}
		}, this);
	}
	if (_239 && dojo.lang.isFunction(_239)) {
		this.easing = _239;
	}
};
dojo.inherits(dojo.lfx.Animation, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Animation, {
	_startTime : null,
	_endTime : null,
	_timer : null,
	_percent : 0,
	_startRepeatCount : 0,
	play : function(_23d, _23e) {
		if (_23e) {
			clearTimeout(this._timer);
			this._active = false;
			this._paused = false;
			this._percent = 0;
		} else {
			if (this._active && !this._paused) {
				return this;
			}
		}
		this.fire("handler", [ "beforeBegin" ]);
		this.fire("beforeBegin");
		if (_23d > 0) {
			setTimeout(dojo.lang.hitch(this, function() {
				this.play(null, _23e);
			}), _23d);
			return this;
		}
		this._startTime = new Date().valueOf();
		if (this._paused) {
			this._startTime -= (this.duration * this._percent / 100);
		}
		this._endTime = this._startTime + this.duration;
		this._active = true;
		this._paused = false;
		var step = this._percent / 100;
		var _240 = this.curve.getValue(step);
		if (this._percent == 0) {
			if (!this._startRepeatCount) {
				this._startRepeatCount = this.repeatCount;
			}
			this.fire("handler", [ "begin", _240 ]);
			this.fire("onBegin", [ _240 ]);
		}
		this.fire("handler", [ "play", _240 ]);
		this.fire("onPlay", [ _240 ]);
		this._cycle();
		return this;
	},
	pause : function() {
		clearTimeout(this._timer);
		if (!this._active) {
			return this;
		}
		this._paused = true;
		var _241 = this.curve.getValue(this._percent / 100);
		this.fire("handler", [ "pause", _241 ]);
		this.fire("onPause", [ _241 ]);
		return this;
	},
	gotoPercent : function(pct, _243) {
		clearTimeout(this._timer);
		this._active = true;
		this._paused = true;
		this._percent = pct;
		if (_243) {
			this.play();
		}
		return this;
	},
	stop : function(_244) {
		clearTimeout(this._timer);
		var step = this._percent / 100;
		if (_244) {
			step = 1;
		}
		var _246 = this.curve.getValue(step);
		this.fire("handler", [ "stop", _246 ]);
		this.fire("onStop", [ _246 ]);
		this._active = false;
		this._paused = false;
		return this;
	},
	status : function() {
		if (this._active) {
			return this._paused ? "paused" : "playing";
		} else {
			return "stopped";
		}
		return this;
	},
	_cycle : function() {
		clearTimeout(this._timer);
		if (this._active) {
			var curr = new Date().valueOf();
			var step = (curr - this._startTime)
					/ (this._endTime - this._startTime);
			if (step >= 1) {
				step = 1;
				this._percent = 100;
			} else {
				this._percent = step * 100;
			}
			if ((this.easing) && (dojo.lang.isFunction(this.easing))) {
				step = this.easing(step);
			}
			var _249 = this.curve.getValue(step);
			this.fire("handler", [ "animate", _249 ]);
			this.fire("onAnimate", [ _249 ]);
			if (step < 1) {
				this._timer = setTimeout(dojo.lang.hitch(this, "_cycle"),
						this.rate);
			} else {
				this._active = false;
				this.fire("handler", [ "end" ]);
				this.fire("onEnd");
				if (this.repeatCount > 0) {
					this.repeatCount--;
					this.play(null, true);
				} else {
					if (this.repeatCount == -1) {
						this.play(null, true);
					} else {
						if (this._startRepeatCount) {
							this.repeatCount = this._startRepeatCount;
							this._startRepeatCount = 0;
						}
					}
				}
			}
		}
		return this;
	}
});
dojo.lfx.Combine = function(_24a) {
	dojo.lfx.IAnimation.call(this);
	this._anims = [];
	this._animsEnded = 0;
	var _24b = arguments;
	if (_24b.length == 1
			&& (dojo.lang.isArray(_24b[0]) || dojo.lang.isArrayLike(_24b[0]))) {
		_24b = _24b[0];
	}
	dojo.lang.forEach(_24b, function(anim) {
		this._anims.push(anim);
		anim.connect("onEnd", dojo.lang.hitch(this, "_onAnimsEnded"));
	}, this);
};
dojo.inherits(dojo.lfx.Combine, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Combine, {
	_animsEnded : 0,
	play : function(_24d, _24e) {
		if (!this._anims.length) {
			return this;
		}
		this.fire("beforeBegin");
		if (_24d > 0) {
			setTimeout(dojo.lang.hitch(this, function() {
				this.play(null, _24e);
			}), _24d);
			return this;
		}
		if (_24e || this._anims[0].percent == 0) {
			this.fire("onBegin");
		}
		this.fire("onPlay");
		this._animsCall("play", null, _24e);
		return this;
	},
	pause : function() {
		this.fire("onPause");
		this._animsCall("pause");
		return this;
	},
	stop : function(_24f) {
		this.fire("onStop");
		this._animsCall("stop", _24f);
		return this;
	},
	_onAnimsEnded : function() {
		this._animsEnded++;
		if (this._animsEnded >= this._anims.length) {
			this.fire("onEnd");
		}
		return this;
	},
	_animsCall : function(_250) {
		var args = [];
		if (arguments.length > 1) {
			for ( var i = 1; i < arguments.length; i++) {
				args.push(arguments[i]);
			}
		}
		var _253 = this;
		dojo.lang.forEach(this._anims, function(anim) {
			anim[_250](args);
		}, _253);
		return this;
	}
});
dojo.lfx.Chain = function(_255) {
	dojo.lfx.IAnimation.call(this);
	this._anims = [];
	this._currAnim = -1;
	var _256 = arguments;
	if (_256.length == 1
			&& (dojo.lang.isArray(_256[0]) || dojo.lang.isArrayLike(_256[0]))) {
		_256 = _256[0];
	}
	var _257 = this;
	dojo.lang.forEach(_256, function(anim, i, _25a) {
		this._anims.push(anim);
		if (i < _25a.length - 1) {
			anim.connect("onEnd", dojo.lang.hitch(this, "_playNext"));
		} else {
			anim.connect("onEnd", dojo.lang.hitch(this, function() {
				this.fire("onEnd");
			}));
		}
	}, this);
};
dojo.inherits(dojo.lfx.Chain, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Chain, {
	_currAnim : -1,
	play : function(_25b, _25c) {
		if (!this._anims.length) {
			return this;
		}
		if (_25c || !this._anims[this._currAnim]) {
			this._currAnim = 0;
		}
		var _25d = this._anims[this._currAnim];
		this.fire("beforeBegin");
		if (_25b > 0) {
			setTimeout(dojo.lang.hitch(this, function() {
				this.play(null, _25c);
			}), _25b);
			return this;
		}
		if (_25d) {
			if (this._currAnim == 0) {
				this.fire("handler", [ "begin", this._currAnim ]);
				this.fire("onBegin", [ this._currAnim ]);
			}
			this.fire("onPlay", [ this._currAnim ]);
			_25d.play(null, _25c);
		}
		return this;
	},
	pause : function() {
		if (this._anims[this._currAnim]) {
			this._anims[this._currAnim].pause();
			this.fire("onPause", [ this._currAnim ]);
		}
		return this;
	},
	playPause : function() {
		if (this._anims.length == 0) {
			return this;
		}
		if (this._currAnim == -1) {
			this._currAnim = 0;
		}
		var _25e = this._anims[this._currAnim];
		if (_25e) {
			if (!_25e._active || _25e._paused) {
				this.play();
			} else {
				this.pause();
			}
		}
		return this;
	},
	stop : function() {
		var _25f = this._anims[this._currAnim];
		if (_25f) {
			_25f.stop();
			this.fire("onStop", [ this._currAnim ]);
		}
		return _25f;
	},
	_playNext : function() {
		if (this._currAnim == -1 || this._anims.length == 0) {
			return this;
		}
		this._currAnim++;
		if (this._anims[this._currAnim]) {
			this._anims[this._currAnim].play(null, true);
		}
		return this;
	}
});
dojo.lfx.combine = function(_260) {
	var _261 = arguments;
	if (dojo.lang.isArray(arguments[0])) {
		_261 = arguments[0];
	}
	if (_261.length == 1) {
		return _261[0];
	}
	return new dojo.lfx.Combine(_261);
};
dojo.lfx.chain = function(_262) {
	var _263 = arguments;
	if (dojo.lang.isArray(arguments[0])) {
		_263 = arguments[0];
	}
	if (_263.length == 1) {
		return _263[0];
	}
	return new dojo.lfx.Chain(_263);
};
dojo.require("dojo.html.style");
dojo.provide("dojo.html.color");
dojo.require("dojo.lang.common");
dojo.html.getBackgroundColor = function(node) {
	node = dojo.byId(node);
	var _265;
	do {
		_265 = dojo.html.getStyle(node, "background-color");
		if (_265.toLowerCase() == "rgba(0, 0, 0, 0)") {
			_265 = "transparent";
		}
		if (node == document.getElementsByTagName("body")[0]) {
			node = null;
			break;
		}
		node = node.parentNode;
	} while (node && dojo.lang.inArray([ "transparent", "" ], _265));
	if (_265 == "transparent") {
		_265 = [ 255, 255, 255, 0 ];
	} else {
		_265 = dojo.gfx.color.extractRGB(_265);
	}
	return _265;
};
dojo.provide("dojo.lfx.html");
dojo.require("dojo.lang.array");
dojo.require("dojo.html.display");
dojo.lfx.html._byId = function(_266) {
	if (!_266) {
		return [];
	}
	if (dojo.lang.isArrayLike(_266)) {
		if (!_266.alreadyChecked) {
			var n = [];
			dojo.lang.forEach(_266, function(node) {
				n.push(dojo.byId(node));
			});
			n.alreadyChecked = true;
			return n;
		} else {
			return _266;
		}
	} else {
		var n = [];
		n.push(dojo.byId(_266));
		n.alreadyChecked = true;
		return n;
	}
};
dojo.lfx.html.propertyAnimation = function(_269, _26a, _26b, _26c, _26d) {
	_269 = dojo.lfx.html._byId(_269);
	var _26e = {
		"propertyMap" : _26a,
		"nodes" : _269,
		"duration" : _26b,
		"easing" : _26c || dojo.lfx.easeDefault
	};
	var _26f = function(args) {
		if (args.nodes.length == 1) {
			var pm = args.propertyMap;
			if (!dojo.lang.isArray(args.propertyMap)) {
				var parr = [];
				for ( var _273 in pm) {
					pm[_273].property = _273;
					parr.push(pm[_273]);
				}
				pm = args.propertyMap = parr;
			}
			dojo.lang.forEach(pm, function(prop) {
				if (dj_undef("start", prop)) {
					if (prop.property != "opacity") {
						prop.start = parseInt(dojo.html.getComputedStyle(
								args.nodes[0], prop.property));
					} else {
						prop.start = dojo.html.getOpacity(args.nodes[0]);
					}
				}
			});
		}
	};
	var _275 = function(_276) {
		var _277 = [];
		dojo.lang.forEach(_276, function(c) {
			_277.push(Math.round(c));
		});
		return _277;
	};
	var _279 = function(n, _27b) {
		n = dojo.byId(n);
		if (!n || !n.style) {
			return;
		}
		for ( var s in _27b) {
			try {
				if (s == "opacity") {
					dojo.html.setOpacity(n, _27b[s]);
				} else {
					n.style[s] = _27b[s];
				}
			} catch (e) {
				dojo.debug(e);
			}
		}
	};
	var _27d = function(_27e) {
		this._properties = _27e;
		this.diffs = new Array(_27e.length);
		dojo.lang.forEach(_27e, function(prop, i) {
			if (dojo.lang.isFunction(prop.start)) {
				prop.start = prop.start(prop, i);
			}
			if (dojo.lang.isFunction(prop.end)) {
				prop.end = prop.end(prop, i);
			}
			if (dojo.lang.isArray(prop.start)) {
				this.diffs[i] = null;
			} else {
				if (prop.start instanceof dojo.gfx.color.Color) {
					prop.startRgb = prop.start.toRgb();
					prop.endRgb = prop.end.toRgb();
				} else {
					this.diffs[i] = prop.end - prop.start;
				}
			}
		}, this);
		this.getValue = function(n) {
			var ret = {};
			dojo.lang
					.forEach(
							this._properties,
							function(prop, i) {
								var _285 = null;
								if (dojo.lang.isArray(prop.start)) {
								} else {
									if (prop.start instanceof dojo.gfx.color.Color) {
										_285 = (prop.units || "rgb") + "(";
										for ( var j = 0; j < prop.startRgb.length; j++) {
											_285 += Math
													.round(((prop.endRgb[j] - prop.startRgb[j]) * n)
															+ prop.startRgb[j])
													+ (j < prop.startRgb.length - 1 ? ","
															: "");
										}
										_285 += ")";
									} else {
										_285 = ((this.diffs[i]) * n)
												+ prop.start
												+ (prop.property != "opacity" ? prop.units
														|| "px"
														: "");
									}
								}
								ret[dojo.html.toCamelCase(prop.property)] = _285;
							}, this);
			return ret;
		};
	};
	var anim = new dojo.lfx.Animation({
		beforeBegin : function() {
			_26f(_26e);
			anim.curve = new _27d(_26e.propertyMap);
		},
		onAnimate : function(_288) {
			dojo.lang.forEach(_26e.nodes, function(node) {
				_279(node, _288);
			});
		}
	}, _26e.duration, null, _26e.easing);
	if (_26d) {
		for ( var x in _26d) {
			if (dojo.lang.isFunction(_26d[x])) {
				anim.connect(x, anim, _26d[x]);
			}
		}
	}
	return anim;
};
dojo.lfx.html._makeFadeable = function(_28b) {
	var _28c = function(node) {
		if (dojo.render.html.ie) {
			if ((node.style.zoom.length == 0)
					&& (dojo.html.getStyle(node, "zoom") == "normal")) {
				node.style.zoom = "1";
			}
			if ((node.style.width.length == 0)
					&& (dojo.html.getStyle(node, "width") == "auto")) {
				node.style.width = "auto";
			}
		}
	};
	if (dojo.lang.isArrayLike(_28b)) {
		dojo.lang.forEach(_28b, _28c);
	} else {
		_28c(_28b);
	}
};
dojo.lfx.html.fade = function(_28e, _28f, _290, _291, _292) {
	_28e = dojo.lfx.html._byId(_28e);
	var _293 = {
		property : "opacity"
	};
	if (!dj_undef("start", _28f)) {
		_293.start = _28f.start;
	} else {
		_293.start = function() {
			return dojo.html.getOpacity(_28e[0]);
		};
	}
	if (!dj_undef("end", _28f)) {
		_293.end = _28f.end;
	} else {
		dojo.raise("dojo.lfx.html.fade needs an end value");
	}
	var anim = dojo.lfx.propertyAnimation(_28e, [ _293 ], _290, _291);
	anim.connect("beforeBegin", function() {
		dojo.lfx.html._makeFadeable(_28e);
	});
	if (_292) {
		anim.connect("onEnd", function() {
			_292(_28e, anim);
		});
	}
	return anim;
};
dojo.lfx.html.fadeIn = function(_295, _296, _297, _298) {
	return dojo.lfx.html.fade(_295, {
		end : 1
	}, _296, _297, _298);
};
dojo.lfx.html.fadeOut = function(_299, _29a, _29b, _29c) {
	return dojo.lfx.html.fade(_299, {
		end : 0
	}, _29a, _29b, _29c);
};
dojo.lfx.html.fadeShow = function(_29d, _29e, _29f, _2a0) {
	_29d = dojo.lfx.html._byId(_29d);
	dojo.lang.forEach(_29d, function(node) {
		dojo.html.setOpacity(node, 0);
	});
	var anim = dojo.lfx.html.fadeIn(_29d, _29e, _29f, _2a0);
	anim.connect("beforeBegin", function() {
		if (dojo.lang.isArrayLike(_29d)) {
			dojo.lang.forEach(_29d, dojo.html.show);
		} else {
			dojo.html.show(_29d);
		}
	});
	return anim;
};
dojo.lfx.html.fadeHide = function(_2a3, _2a4, _2a5, _2a6) {
	var anim = dojo.lfx.html.fadeOut(_2a3, _2a4, _2a5, function() {
		if (dojo.lang.isArrayLike(_2a3)) {
			dojo.lang.forEach(_2a3, dojo.html.hide);
		} else {
			dojo.html.hide(_2a3);
		}
		if (_2a6) {
			_2a6(_2a3, anim);
		}
	});
	return anim;
};
dojo.lfx.html.wipeIn = function(_2a8, _2a9, _2aa, _2ab) {
	_2a8 = dojo.lfx.html._byId(_2a8);
	var _2ac = [];
	dojo.lang.forEach(_2a8, function(node) {
		var _2ae = {};
		var _2af, _2b0, _2b1;
		with (node.style) {
			_2af = top;
			_2b0 = left;
			_2b1 = position;
			top = "-9999px";
			left = "-9999px";
			position = "absolute";
			display = "";
		}
		var _2b2 = dojo.html.getBorderBox(node).height;
		with (node.style) {
			top = _2af;
			left = _2b0;
			position = _2b1;
			display = "none";
		}
		var anim = dojo.lfx.propertyAnimation(node, {
			"height" : {
				start : 1,
				end : function() {
					return _2b2;
				}
			}
		}, _2a9, _2aa);
		anim.connect("beforeBegin", function() {
			_2ae.overflow = node.style.overflow;
			_2ae.height = node.style.height;
			with (node.style) {
				overflow = "hidden";
				height = "1px";
			}
			dojo.html.show(node);
		});
		anim.connect("onEnd", function() {
			with (node.style) {
				overflow = _2ae.overflow;
				height = _2ae.height;
			}
			if (_2ab) {
				_2ab(node, anim);
			}
		});
		_2ac.push(anim);
	});
	return dojo.lfx.combine(_2ac);
};
dojo.lfx.html.wipeOut = function(_2b4, _2b5, _2b6, _2b7) {
	_2b4 = dojo.lfx.html._byId(_2b4);
	var _2b8 = [];
	dojo.lang.forEach(_2b4, function(node) {
		var _2ba = {};
		var anim = dojo.lfx.propertyAnimation(node, {
			"height" : {
				start : function() {
					return dojo.html.getContentBox(node).height;
				},
				end : 1
			}
		}, _2b5, _2b6, {
			"beforeBegin" : function() {
				_2ba.overflow = node.style.overflow;
				_2ba.height = node.style.height;
				with (node.style) {
					overflow = "hidden";
				}
				dojo.html.show(node);
			},
			"onEnd" : function() {
				dojo.html.hide(node);
				with (node.style) {
					overflow = _2ba.overflow;
					height = _2ba.height;
				}
				if (_2b7) {
					_2b7(node, anim);
				}
			}
		});
		_2b8.push(anim);
	});
	return dojo.lfx.combine(_2b8);
};
dojo.lfx.html.slideTo = function(_2bc, _2bd, _2be, _2bf, _2c0) {
	_2bc = dojo.lfx.html._byId(_2bc);
	var _2c1 = [];
	var _2c2 = dojo.html.getComputedStyle;
	if (dojo.lang.isArray(_2bd)) {
		dojo.deprecated("dojo.lfx.html.slideTo(node, array)",
				"use dojo.lfx.html.slideTo(node, {top: value, left: value});",
				"0.5");
		_2bd = {
			top : _2bd[0],
			left : _2bd[1]
		};
	}
	dojo.lang.forEach(_2bc, function(node) {
		var top = null;
		var left = null;
		var init = (function() {
			var _2c7 = node;
			return function() {
				var pos = _2c2(_2c7, "position");
				top = (pos == "absolute" ? node.offsetTop : parseInt(_2c2(node,
						"top")) || 0);
				left = (pos == "absolute" ? node.offsetLeft : parseInt(_2c2(
						node, "left")) || 0);
				if (!dojo.lang.inArray([ "absolute", "relative" ], pos)) {
					var ret = dojo.html.abs(_2c7, true);
					dojo.html.setStyleAttributes(_2c7, "position:absolute;top:"
							+ ret.y + "px;left:" + ret.x + "px;");
					top = ret.y;
					left = ret.x;
				}
			};
		})();
		init();
		var anim = dojo.lfx.propertyAnimation(node, {
			"top" : {
				start : top,
				end : (_2bd.top || 0)
			},
			"left" : {
				start : left,
				end : (_2bd.left || 0)
			}
		}, _2be, _2bf, {
			"beforeBegin" : init
		});
		if (_2c0) {
			anim.connect("onEnd", function() {
				_2c0(_2bc, anim);
			});
		}
		_2c1.push(anim);
	});
	return dojo.lfx.combine(_2c1);
};
dojo.lfx.html.slideBy = function(_2cb, _2cc, _2cd, _2ce, _2cf) {
	_2cb = dojo.lfx.html._byId(_2cb);
	var _2d0 = [];
	var _2d1 = dojo.html.getComputedStyle;
	if (dojo.lang.isArray(_2cc)) {
		dojo.deprecated("dojo.lfx.html.slideBy(node, array)",
				"use dojo.lfx.html.slideBy(node, {top: value, left: value});",
				"0.5");
		_2cc = {
			top : _2cc[0],
			left : _2cc[1]
		};
	}
	dojo.lang.forEach(_2cb, function(node) {
		var top = null;
		var left = null;
		var init = (function() {
			var _2d6 = node;
			return function() {
				var pos = _2d1(_2d6, "position");
				top = (pos == "absolute" ? node.offsetTop : parseInt(_2d1(node,
						"top")) || 0);
				left = (pos == "absolute" ? node.offsetLeft : parseInt(_2d1(
						node, "left")) || 0);
				if (!dojo.lang.inArray([ "absolute", "relative" ], pos)) {
					var ret = dojo.html.abs(_2d6, true);
					dojo.html.setStyleAttributes(_2d6, "position:absolute;top:"
							+ ret.y + "px;left:" + ret.x + "px;");
					top = ret.y;
					left = ret.x;
				}
			};
		})();
		init();
		var anim = dojo.lfx.propertyAnimation(node, {
			"top" : {
				start : top,
				end : top + (_2cc.top || 0)
			},
			"left" : {
				start : left,
				end : left + (_2cc.left || 0)
			}
		}, _2cd, _2ce).connect("beforeBegin", init);
		if (_2cf) {
			anim.connect("onEnd", function() {
				_2cf(_2cb, anim);
			});
		}
		_2d0.push(anim);
	});
	return dojo.lfx.combine(_2d0);
};
dojo.lfx.html.explode = function(_2da, _2db, _2dc, _2dd, _2de) {
	var h = dojo.html;
	_2da = dojo.byId(_2da);
	_2db = dojo.byId(_2db);
	var _2e0 = h.toCoordinateObject(_2da, true);
	var _2e1 = document.createElement("div");
	h.copyStyle(_2e1, _2db);
	if (_2db.explodeClassName) {
		_2e1.className = _2db.explodeClassName;
	}
	with (_2e1.style) {
		position = "absolute";
		display = "none";
		var _2e2 = h.getStyle(_2da, "background-color");
		backgroundColor = _2e2 ? _2e2.toLowerCase() : "transparent";
		backgroundColor = (backgroundColor == "transparent") ? "rgb(221, 221, 221)"
				: backgroundColor;
	}
	dojo.body().appendChild(_2e1);
	with (_2db.style) {
		visibility = "hidden";
		display = "block";
	}
	var _2e3 = h.toCoordinateObject(_2db, true);
	with (_2db.style) {
		display = "none";
		visibility = "visible";
	}
	var _2e4 = {
		opacity : {
			start : 0.5,
			end : 1
		}
	};
	dojo.lang.forEach([ "height", "width", "top", "left" ], function(type) {
		_2e4[type] = {
			start : _2e0[type],
			end : _2e3[type]
		};
	});
	var anim = new dojo.lfx.propertyAnimation(_2e1, _2e4, _2dc, _2dd, {
		"beforeBegin" : function() {
			h.setDisplay(_2e1, "block");
		},
		"onEnd" : function() {
			h.setDisplay(_2db, "block");
			_2e1.parentNode.removeChild(_2e1);
		}
	});
	if (_2de) {
		anim.connect("onEnd", function() {
			_2de(_2db, anim);
		});
	}
	return anim;
};
dojo.lfx.html.implode = function(_2e7, end, _2e9, _2ea, _2eb) {
	var h = dojo.html;
	_2e7 = dojo.byId(_2e7);
	end = dojo.byId(end);
	var _2ed = dojo.html.toCoordinateObject(_2e7, true);
	var _2ee = dojo.html.toCoordinateObject(end, true);
	var _2ef = document.createElement("div");
	dojo.html.copyStyle(_2ef, _2e7);
	if (_2e7.explodeClassName) {
		_2ef.className = _2e7.explodeClassName;
	}
	dojo.html.setOpacity(_2ef, 0.3);
	with (_2ef.style) {
		position = "absolute";
		display = "none";
		backgroundColor = h.getStyle(_2e7, "background-color").toLowerCase();
	}
	dojo.body().appendChild(_2ef);
	var _2f0 = {
		opacity : {
			start : 1,
			end : 0.5
		}
	};
	dojo.lang.forEach([ "height", "width", "top", "left" ], function(type) {
		_2f0[type] = {
			start : _2ed[type],
			end : _2ee[type]
		};
	});
	var anim = new dojo.lfx.propertyAnimation(_2ef, _2f0, _2e9, _2ea, {
		"beforeBegin" : function() {
			dojo.html.hide(_2e7);
			dojo.html.show(_2ef);
		},
		"onEnd" : function() {
			_2ef.parentNode.removeChild(_2ef);
		}
	});
	if (_2eb) {
		anim.connect("onEnd", function() {
			_2eb(_2e7, anim);
		});
	}
	return anim;
};
dojo.lfx.html.highlight = function(_2f3, _2f4, _2f5, _2f6, _2f7) {
	_2f3 = dojo.lfx.html._byId(_2f3);
	var _2f8 = [];
	dojo.lang.forEach(_2f3, function(node) {
		var _2fa = dojo.html.getBackgroundColor(node);
		var bg = dojo.html.getStyle(node, "background-color").toLowerCase();
		var _2fc = dojo.html.getStyle(node, "background-image");
		var _2fd = (bg == "transparent" || bg == "rgba(0, 0, 0, 0)");
		while (_2fa.length > 3) {
			_2fa.pop();
		}
		var rgb = new dojo.gfx.color.Color(_2f4);
		var _2ff = new dojo.gfx.color.Color(_2fa);
		var anim = dojo.lfx.propertyAnimation(node, {
			"background-color" : {
				start : rgb,
				end : _2ff
			}
		}, _2f5, _2f6, {
			"beforeBegin" : function() {
				if (_2fc) {
					node.style.backgroundImage = "none";
				}
				node.style.backgroundColor = "rgb(" + rgb.toRgb().join(",")
						+ ")";
			},
			"onEnd" : function() {
				if (_2fc) {
					node.style.backgroundImage = _2fc;
				}
				if (_2fd) {
					node.style.backgroundColor = "transparent";
				}
				if (_2f7) {
					_2f7(node, anim);
				}
			}
		});
		_2f8.push(anim);
	});
	return dojo.lfx.combine(_2f8);
};
dojo.lfx.html.unhighlight = function(_301, _302, _303, _304, _305) {
	_301 = dojo.lfx.html._byId(_301);
	var _306 = [];
	dojo.lang.forEach(_301,
			function(node) {
				var _308 = new dojo.gfx.color.Color(dojo.html
						.getBackgroundColor(node));
				var rgb = new dojo.gfx.color.Color(_302);
				var _30a = dojo.html.getStyle(node, "background-image");
				var anim = dojo.lfx.propertyAnimation(node, {
					"background-color" : {
						start : _308,
						end : rgb
					}
				}, _303, _304, {
					"beforeBegin" : function() {
						if (_30a) {
							node.style.backgroundImage = "none";
						}
						node.style.backgroundColor = "rgb("
								+ _308.toRgb().join(",") + ")";
					},
					"onEnd" : function() {
						if (_305) {
							_305(node, anim);
						}
					}
				});
				_306.push(anim);
			});
	return dojo.lfx.combine(_306);
};
dojo.lang.mixin(dojo.lfx, dojo.lfx.html);
dojo.kwCompoundRequire({
	browser : [ "dojo.lfx.html" ],
	dashboard : [ "dojo.lfx.html" ]
});
dojo.provide("dojo.lfx.*");
dojo.provide("dojo.lfx.toggle");
dojo.lfx.toggle.plain = {
	show : function(node, _30d, _30e, _30f) {
		dojo.html.show(node);
		if (dojo.lang.isFunction(_30f)) {
			_30f();
		}
	},
	hide : function(node, _311, _312, _313) {
		dojo.html.hide(node);
		if (dojo.lang.isFunction(_313)) {
			_313();
		}
	}
};
dojo.lfx.toggle.fade = {
	show : function(node, _315, _316, _317) {
		dojo.lfx.fadeShow(node, _315, _316, _317).play();
	},
	hide : function(node, _319, _31a, _31b) {
		dojo.lfx.fadeHide(node, _319, _31a, _31b).play();
	}
};
dojo.lfx.toggle.wipe = {
	show : function(node, _31d, _31e, _31f) {
		dojo.lfx.wipeIn(node, _31d, _31e, _31f).play();
	},
	hide : function(node, _321, _322, _323) {
		dojo.lfx.wipeOut(node, _321, _322, _323).play();
	}
};
dojo.lfx.toggle.explode = {
	show : function(node, _325, _326, _327, _328) {
		dojo.lfx.explode(_328 || {
			x : 0,
			y : 0,
			width : 0,
			height : 0
		}, node, _325, _326, _327).play();
	},
	hide : function(node, _32a, _32b, _32c, _32d) {
		dojo.lfx.implode(node, _32d || {
			x : 0,
			y : 0,
			width : 0,
			height : 0
		}, _32a, _32b, _32c).play();
	}
};
dojo.provide("dojo.widget.HtmlWidget");
dojo.require("dojo.html.display");
dojo.require("dojo.lang.extras");
dojo.require("dojo.lang.func");
dojo.declare("dojo.widget.HtmlWidget", dojo.widget.DomWidget, {
	templateCssPath : null,
	templatePath : null,
	lang : "",
	toggle : "plain",
	toggleDuration : 150,
	initialize : function(args, frag) {
	},
	postMixInProperties : function(args, frag) {
		if (this.lang === "") {
			this.lang = null;
		}
		this.toggleObj = dojo.lfx.toggle[this.toggle.toLowerCase()]
				|| dojo.lfx.toggle.plain;
	},
	createNodesFromText : function(txt, wrap) {
		return dojo.html.createNodesFromText(txt, wrap);
	},
	destroyRendering : function(_334) {
		try {
			if (this.bgIframe) {
				this.bgIframe.remove();
				delete this.bgIframe;
			}
			if (!_334 && this.domNode) {
				dojo.event.browser.clean(this.domNode);
			}
			dojo.widget.HtmlWidget.superclass.destroyRendering.call(this);
		} catch (e) {
		}
	},
	isShowing : function() {
		return dojo.html.isShowing(this.domNode);
	},
	toggleShowing : function() {
		if (this.isShowing()) {
			this.hide();
		} else {
			this.show();
		}
	},
	show : function() {
		if (this.isShowing()) {
			return;
		}
		this.animationInProgress = true;
		this.toggleObj.show(this.domNode, this.toggleDuration, null, dojo.lang
				.hitch(this, this.onShow), this.explodeSrc);
	},
	onShow : function() {
		this.animationInProgress = false;
		this.checkSize();
	},
	hide : function() {
		if (!this.isShowing()) {
			return;
		}
		this.animationInProgress = true;
		this.toggleObj.hide(this.domNode, this.toggleDuration, null, dojo.lang
				.hitch(this, this.onHide), this.explodeSrc);
	},
	onHide : function() {
		this.animationInProgress = false;
	},
	_isResized : function(w, h) {
		if (!this.isShowing()) {
			return false;
		}
		var wh = dojo.html.getMarginBox(this.domNode);
		var _338 = w || wh.width;
		var _339 = h || wh.height;
		if (this.width == _338 && this.height == _339) {
			return false;
		}
		this.width = _338;
		this.height = _339;
		return true;
	},
	checkSize : function() {
		if (!this._isResized()) {
			return;
		}
		this.onResized();
	},
	resizeTo : function(w, h) {
		dojo.html.setMarginBox(this.domNode, {
			width : w,
			height : h
		});
		if (this.isShowing()) {
			this.onResized();
		}
	},
	resizeSoon : function() {
		if (this.isShowing()) {
			dojo.lang.setTimeout(this, this.onResized, 0);
		}
	},
	onResized : function() {
		dojo.lang.forEach(this.children, function(_33c) {
			if (_33c.checkSize) {
				_33c.checkSize();
			}
		});
	}
});
dojo.kwCompoundRequire({
	common : [ "dojo.xml.Parse", "dojo.widget.Widget", "dojo.widget.Parse",
			"dojo.widget.Manager" ],
	browser : [ "dojo.widget.DomWidget", "dojo.widget.HtmlWidget" ],
	dashboard : [ "dojo.widget.DomWidget", "dojo.widget.HtmlWidget" ],
	svg : [ "dojo.widget.SvgWidget" ],
	rhino : [ "dojo.widget.SwtWidget" ]
});
dojo.provide("dojo.widget.*");
dojo.kwCompoundRequire({
	common : [ "dojo.io.common" ],
	rhino : [ "dojo.io.RhinoIO" ],
	browser : [ "dojo.io.BrowserIO", "dojo.io.cookie" ],
	dashboard : [ "dojo.io.BrowserIO", "dojo.io.cookie" ]
});
dojo.provide("dojo.io.*");
dojo.provide("dojo.widget.ContentPane");
dojo.require("dojo.string");
dojo.require("dojo.string.extras");
dojo.require("dojo.html.style");
dojo.widget
		.defineWidget(
				"dojo.widget.ContentPane",
				dojo.widget.HtmlWidget,
				function() {
					this._styleNodes = [];
					this._onLoadStack = [];
					this._onUnloadStack = [];
					this._callOnUnload = false;
					this._ioBindObj;
					this.scriptScope;
					this.bindArgs = {};
				},
				{
					isContainer : true,
					adjustPaths : true,
					href : "",
					extractContent : true,
					parseContent : true,
					cacheContent : true,
					preload : false,
					refreshOnShow : false,
					handler : "",
					executeScripts : false,
					scriptSeparation : true,
					loadingMessage : "Loading...",
					isLoaded : false,
					postCreate : function(args, frag, _33f) {
						if (this.handler !== "") {
							this.setHandler(this.handler);
						}
						if (this.isShowing() || this.preload) {
							this.loadContents();
						}
					},
					show : function() {
						if (this.refreshOnShow) {
							this.refresh();
						} else {
							this.loadContents();
						}
						dojo.widget.ContentPane.superclass.show.call(this);
					},
					refresh : function() {
						this.isLoaded = false;
						this.loadContents();
					},
					loadContents : function() {
						if (this.isLoaded) {
							return;
						}
						if (dojo.lang.isFunction(this.handler)) {
							this._runHandler();
						} else {
							if (this.href != "") {
								this._downloadExternalContent(this.href,
										this.cacheContent
												&& !this.refreshOnShow);
							}
						}
					},
					setUrl : function(url) {
						this.href = url;
						this.isLoaded = false;
						if (this.preload || this.isShowing()) {
							this.loadContents();
						}
					},
					abort : function() {
						var bind = this._ioBindObj;
						if (!bind || !bind.abort) {
							return;
						}
						bind.abort();
						delete this._ioBindObj;
					},
					_downloadExternalContent : function(url, _343) {
						this.abort();
						this._handleDefaults(this.loadingMessage,
								"onDownloadStart");
						var self = this;
						this._ioBindObj = dojo.io.bind(this._cacheSetting({
							url : url,
							mimetype : "text/html",
							handler : function(type, data, xhr) {
								delete self._ioBindObj;
								if (type == "load") {
									self.onDownloadEnd.call(self, url, data);
								} else {
									var e = {
										responseText : xhr.responseText,
										status : xhr.status,
										statusText : xhr.statusText,
										responseHeaders : xhr
												.getAllResponseHeaders(),
										text : "Error loading '" + url + "' ("
												+ xhr.status + " "
												+ xhr.statusText + ")"
									};
									self._handleDefaults.call(self, e,
											"onDownloadError");
									self.onLoad();
								}
							}
						}, _343));
					},
					_cacheSetting : function(_349, _34a) {
						for ( var x in this.bindArgs) {
							if (dojo.lang.isUndefined(_349[x])) {
								_349[x] = this.bindArgs[x];
							}
						}
						if (dojo.lang.isUndefined(_349.useCache)) {
							_349.useCache = _34a;
						}
						if (dojo.lang.isUndefined(_349.preventCache)) {
							_349.preventCache = !_34a;
						}
						if (dojo.lang.isUndefined(_349.mimetype)) {
							_349.mimetype = "text/html";
						}
						return _349;
					},
					onLoad : function(e) {
						this._runStack("_onLoadStack");
						this.isLoaded = true;
					},
					onUnLoad : function(e) {
						dojo.deprecated(this.widgetType
								+ ".onUnLoad, use .onUnload (lowercased load)",
								0.5);
					},
					onUnload : function(e) {
						this._runStack("_onUnloadStack");
						delete this.scriptScope;
						if (this.onUnLoad !== dojo.widget.ContentPane.prototype.onUnLoad) {
							this.onUnLoad.apply(this, arguments);
						}
					},
					_runStack : function(_34f) {
						var st = this[_34f];
						var err = "";
						var _352 = this.scriptScope || window;
						for ( var i = 0; i < st.length; i++) {
							try {
								st[i].call(_352);
							} catch (e) {
								err += "\n" + st[i] + " failed: "
										+ e.description;
							}
						}
						this[_34f] = [];
						if (err.length) {
							var name = (_34f == "_onLoadStack") ? "addOnLoad"
									: "addOnUnLoad";
							this._handleDefaults(name + " failure\n " + err,
									"onExecError", "debug");
						}
					},
					addOnLoad : function(obj, func) {
						this._pushOnStack(this._onLoadStack, obj, func);
					},
					addOnUnload : function(obj, func) {
						this._pushOnStack(this._onUnloadStack, obj, func);
					},
					addOnUnLoad : function() {
						dojo
								.deprecated(
										this.widgetType
												+ ".addOnUnLoad, use addOnUnload instead. (lowercased Load)",
										0.5);
						this.addOnUnload.apply(this, arguments);
					},
					_pushOnStack : function(_359, obj, func) {
						if (typeof func == "undefined") {
							_359.push(obj);
						} else {
							_359.push(function() {
								obj[func]();
							});
						}
					},
					destroy : function() {
						this.onUnload();
						dojo.widget.ContentPane.superclass.destroy.call(this);
					},
					onExecError : function(e) {
					},
					onContentError : function(e) {
					},
					onDownloadError : function(e) {
					},
					onDownloadStart : function(e) {
					},
					onDownloadEnd : function(url, data) {
						data = this.splitAndFixPaths(data, url);
						this.setContent(data);
					},
					_handleDefaults : function(e, _363, _364) {
						if (!_363) {
							_363 = "onContentError";
						}
						if (dojo.lang.isString(e)) {
							e = {
								text : e
							};
						}
						if (!e.text) {
							e.text = e.toString();
						}
						e.toString = function() {
							return this.text;
						};
						if (typeof e.returnValue != "boolean") {
							e.returnValue = true;
						}
						if (typeof e.preventDefault != "function") {
							e.preventDefault = function() {
								this.returnValue = false;
							};
						}
						this[_363](e);
						if (e.returnValue) {
							switch (_364) {
							case true:
							case "alert":
								alert(e.toString());
								break;
							case "debug":
								dojo.debug(e.toString());
								break;
							default:
								if (this._callOnUnload) {
									this.onUnload();
								}
								this._callOnUnload = false;
								if (arguments.callee._loopStop) {
									dojo.debug(e.toString());
								} else {
									arguments.callee._loopStop = true;
									this._setContent(e.toString());
								}
							}
						}
						arguments.callee._loopStop = false;
					},
					splitAndFixPaths : function(s, url) {
						var _367 = [], _368 = [], tmp = [];
						var _36a = [], _36b = [], attr = [], _36d = [];
						var str = "", path = "", fix = "", _371 = "", tag = "", _373 = "";
						if (!url) {
							url = "./";
						}
						if (s) {
							var _374 = /<title[^>]*>([\s\S]*?)<\/title>/i;
							while (_36a = _374.exec(s)) {
								_367.push(_36a[1]);
								s = s.substring(0, _36a.index)
										+ s.substr(_36a.index + _36a[0].length);
							}
							if (this.adjustPaths) {
								var _375 = /<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i;
								var _376 = /\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@]+?)\2/i;
								var _377 = /^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/;
								while (tag = _375.exec(s)) {
									str += s.substring(0, tag.index);
									s = s.substring(
											(tag.index + tag[0].length),
											s.length);
									tag = tag[0];
									_371 = "";
									while (attr = _376.exec(tag)) {
										path = "";
										_373 = attr[3];
										switch (attr[1].toLowerCase()) {
										case "src":
										case "href":
											if (_377.exec(_373)) {
												path = _373;
											} else {
												path = (new dojo.uri.Uri(url,
														_373).toString());
											}
											break;
										case "style":
											path = dojo.html.fixPathsInCssText(
													_373, url);
											break;
										default:
											path = _373;
										}
										fix = " " + attr[1] + "=" + attr[2]
												+ path + attr[2];
										_371 += tag.substring(0, attr.index)
												+ fix;
										tag = tag.substring(
												(attr.index + attr[0].length),
												tag.length);
									}
									str += _371 + tag;
								}
								s = str + s;
							}
							_374 = /(?:<(style)[^>]*>([\s\S]*?)<\/style>|<link ([^>]*rel=['"]?stylesheet['"]?[^>]*)>)/i;
							while (_36a = _374.exec(s)) {
								if (_36a[1] && _36a[1].toLowerCase() == "style") {
									_36d.push(dojo.html.fixPathsInCssText(
											_36a[2], url));
								} else {
									if (attr = _36a[3]
											.match(/href=(['"]?)([^'">]*)\1/i)) {
										_36d.push({
											path : attr[2]
										});
									}
								}
								s = s.substring(0, _36a.index)
										+ s.substr(_36a.index + _36a[0].length);
							}
							var _374 = /<script([^>]*)>([\s\S]*?)<\/script>/i;
							var _378 = /src=(['"]?)([^"']*)\1/i;
							var _379 = /.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/;
							var _37a = /(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g;
							var _37b = /dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix|registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/;
							while (_36a = _374.exec(s)) {
								if (this.executeScripts && _36a[1]) {
									if (attr = _378.exec(_36a[1])) {
										if (_379.exec(attr[2])) {
											dojo
													.debug("Security note! inhibit:"
															+ attr[2]
															+ " from  being loaded again.");
										} else {
											_368.push({
												path : attr[2]
											});
										}
									}
								}
								if (_36a[2]) {
									var sc = _36a[2].replace(_37a, "");
									if (!sc) {
										continue;
									}
									while (tmp = _37b.exec(sc)) {
										_36b.push(tmp[0]);
										sc = sc.substring(0, tmp.index)
												+ sc.substr(tmp.index
														+ tmp[0].length);
									}
									if (this.executeScripts) {
										_368.push(sc);
									}
								}
								s = s.substr(0, _36a.index)
										+ s.substr(_36a.index + _36a[0].length);
							}
							if (this.extractContent) {
								_36a = s
										.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
								if (_36a) {
									s = _36a[1];
								}
							}
							if (this.executeScripts && this.scriptSeparation) {
								var _374 = /(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*?\S=)((['"])[^>]*scriptScope[^>]*>)/;
								var _37d = /([\s'";:\(])scriptScope(.*)/;
								str = "";
								while (tag = _374.exec(s)) {
									tmp = ((tag[3] == "'") ? "\"" : "'");
									fix = "";
									str += s.substring(0, tag.index) + tag[1];
									while (attr = _37d.exec(tag[2])) {
										tag[2] = tag[2]
												.substring(0, attr.index)
												+ attr[1]
												+ "dojo.widget.byId("
												+ tmp
												+ this.widgetId
												+ tmp
												+ ").scriptScope" + attr[2];
									}
									str += tag[2];
									s = s.substr(tag.index + tag[0].length);
								}
								s = str + s;
							}
						}
						return {
							"xml" : s,
							"styles" : _36d,
							"titles" : _367,
							"requires" : _36b,
							"scripts" : _368,
							"url" : url
						};
					},
					_setContent : function(cont) {
						this.destroyChildren();
						for ( var i = 0; i < this._styleNodes.length; i++) {
							if (this._styleNodes[i]
									&& this._styleNodes[i].parentNode) {
								this._styleNodes[i].parentNode
										.removeChild(this._styleNodes[i]);
							}
						}
						this._styleNodes = [];
						try {
							var node = this.containerNode || this.domNode;
							while (node.firstChild) {
								dojo.html.destroyNode(node.firstChild);
							}
							if (typeof cont != "string") {
								node.appendChild(cont);
							} else {
								node.innerHTML = cont;
							}
						} catch (e) {
							e.text = "Couldn't load content:" + e.description;
							this._handleDefaults(e, "onContentError");
						}
					},
					setContent : function(data) {
						this.abort();
						if (this._callOnUnload) {
							this.onUnload();
						}
						this._callOnUnload = true;
						if (!data || dojo.html.isNode(data)) {
							this._setContent(data);
							this.onResized();
							this.onLoad();
						} else {
							if (typeof data.xml != "string") {
								this.href = "";
								data = this.splitAndFixPaths(data);
							}
							this._setContent(data.xml);
							for ( var i = 0; i < data.styles.length; i++) {
								if (data.styles[i].path) {
									this._styleNodes.push(dojo.html
											.insertCssFile(data.styles[i].path,
													dojo.doc(), false, true));
								} else {
									this._styleNodes.push(dojo.html
											.insertCssText(data.styles[i]));
								}
							}
							if (this.parseContent) {
								for ( var i = 0; i < data.requires.length; i++) {
									try {
										eval(data.requires[i]);
									} catch (e) {
										e.text = "ContentPane: error in package loading calls, "
												+ (e.description || e);
										this._handleDefaults(e,
												"onContentError", "debug");
									}
								}
							}
							var _383 = this;
							function asyncParse() {
								if (_383.executeScripts) {
									_383._executeScripts(data.scripts);
								}
								if (_383.parseContent) {
									var node = _383.containerNode
											|| _383.domNode;
									var _385 = new dojo.xml.Parse();
									var frag = _385.parseElement(node, null,
											true);
									dojo.widget.getParser()
											.createSubComponents(frag, _383);
								}
								_383.onResized();
								_383.onLoad();
							}
							if (dojo.hostenv.isXDomain && data.requires.length) {
								dojo.addOnLoad(asyncParse);
							} else {
								asyncParse();
							}
						}
					},
					setHandler : function(_387) {
						var fcn = dojo.lang.isFunction(_387) ? _387
								: window[_387];
						if (!dojo.lang.isFunction(fcn)) {
							this._handleDefaults("Unable to set handler, '"
									+ _387 + "' not a function.",
									"onExecError", true);
							return;
						}
						this.handler = function() {
							return fcn.apply(this, arguments);
						};
					},
					_runHandler : function() {
						var ret = true;
						if (dojo.lang.isFunction(this.handler)) {
							this.handler(this, this.domNode);
							ret = false;
						}
						this.onLoad();
						return ret;
					},
					_executeScripts : function(_38a) {
						var self = this;
						var tmp = "", code = "";
						for ( var i = 0; i < _38a.length; i++) {
							if (_38a[i].path) {
								dojo.io
										.bind(this
												._cacheSetting(
														{
															"url" : _38a[i].path,
															"load" : function(
																	type, _390) {
																dojo.lang
																		.hitch(
																				self,
																				tmp = ";"
																						+ _390);
															},
															"error" : function(
																	type, _392) {
																_392.text = type
																		+ " downloading remote script";
																self._handleDefaults
																		.call(
																				self,
																				_392,
																				"onExecError",
																				"debug");
															},
															"mimetype" : "text/plain",
															"sync" : true
														}, this.cacheContent));
								code += tmp;
							} else {
								code += _38a[i];
							}
						}
						try {
							if (this.scriptSeparation) {
								delete this.scriptScope;
								this.scriptScope = new (new Function(
										"_container_", code + "; return this;"))(
										self);
							} else {
								var djg = dojo.global();
								if (djg.execScript) {
									djg.execScript(code);
								} else {
									var djd = dojo.doc();
									var sc = djd.createElement("script");
									sc.appendChild(djd.createTextNode(code));
									(this.containerNode || this.domNode)
											.appendChild(sc);
								}
							}
						} catch (e) {
							e.text = "Error running scripts from content:\n"
									+ e.description;
							this._handleDefaults(e, "onExecError", "debug");
						}
					}
				});
dojo.require("dojo.html.common");
dojo.provide("dojo.html.selection");
dojo.require("dojo.dom");
dojo.require("dojo.lang.common");
dojo.html.selectionType = {
	NONE : 0,
	TEXT : 1,
	CONTROL : 2
};
dojo.html.clearSelection = function() {
	var _396 = dojo.global();
	var _397 = dojo.doc();
	try {
		if (_396["getSelection"]) {
			if (dojo.render.html.safari) {
				_396.getSelection().collapse();
			} else {
				_396.getSelection().removeAllRanges();
			}
		} else {
			if (_397.selection) {
				if (_397.selection.empty) {
					_397.selection.empty();
				} else {
					if (_397.selection.clear) {
						_397.selection.clear();
					}
				}
			}
		}
		return true;
	} catch (e) {
		dojo.debug(e);
		return false;
	}
};
dojo.html.disableSelection = function(_398) {
	_398 = dojo.byId(_398) || dojo.body();
	var h = dojo.render.html;
	if (h.mozilla) {
		_398.style.MozUserSelect = "none";
	} else {
		if (h.safari) {
			_398.style.KhtmlUserSelect = "none";
		} else {
			if (h.ie) {
				_398.unselectable = "on";
			} else {
				return false;
			}
		}
	}
	return true;
};
dojo.html.enableSelection = function(_39a) {
	_39a = dojo.byId(_39a) || dojo.body();
	var h = dojo.render.html;
	if (h.mozilla) {
		_39a.style.MozUserSelect = "";
	} else {
		if (h.safari) {
			_39a.style.KhtmlUserSelect = "";
		} else {
			if (h.ie) {
				_39a.unselectable = "off";
			} else {
				return false;
			}
		}
	}
	return true;
};
dojo.html.selectElement = function(_39c) {
	dojo.deprecated("dojo.html.selectElement",
			"replaced by dojo.html.selection.selectElementChildren", 0.5);
};
dojo.html.selectInputText = function(_39d) {
	var _39e = dojo.global();
	var _39f = dojo.doc();
	_39d = dojo.byId(_39d);
	if (_39f["selection"] && dojo.body()["createTextRange"]) {
		var _3a0 = _39d.createTextRange();
		_3a0.moveStart("character", 0);
		_3a0.moveEnd("character", _39d.value.length);
		_3a0.select();
	} else {
		if (_39e["getSelection"]) {
			var _3a1 = _39e.getSelection();
			_39d.setSelectionRange(0, _39d.value.length);
		}
	}
	_39d.focus();
};
dojo.html.isSelectionCollapsed = function() {
	dojo.deprecated("dojo.html.isSelectionCollapsed",
			"replaced by dojo.html.selection.isCollapsed", 0.5);
	return dojo.html.selection.isCollapsed();
};
dojo.lang
		.mixin(
				dojo.html.selection,
				{
					getType : function() {
						if (dojo.doc()["selection"]) {
							return dojo.html.selectionType[dojo.doc().selection.type
									.toUpperCase()];
						} else {
							var _3a2 = dojo.html.selectionType.TEXT;
							var oSel;
							try {
								oSel = dojo.global().getSelection();
							} catch (e) {
							}
							if (oSel && oSel.rangeCount == 1) {
								var _3a4 = oSel.getRangeAt(0);
								if (_3a4.startContainer == _3a4.endContainer
										&& (_3a4.endOffset - _3a4.startOffset) == 1
										&& _3a4.startContainer.nodeType != dojo.dom.TEXT_NODE) {
									_3a2 = dojo.html.selectionType.CONTROL;
								}
							}
							return _3a2;
						}
					},
					isCollapsed : function() {
						var _3a5 = dojo.global();
						var _3a6 = dojo.doc();
						if (_3a6["selection"]) {
							return _3a6.selection.createRange().text == "";
						} else {
							if (_3a5["getSelection"]) {
								var _3a7 = _3a5.getSelection();
								if (dojo.lang.isString(_3a7)) {
									return _3a7 == "";
								} else {
									return _3a7.isCollapsed
											|| _3a7.toString() == "";
								}
							}
						}
					},
					getSelectedElement : function() {
						if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {
							if (dojo.doc()["selection"]) {
								var _3a8 = dojo.doc().selection.createRange();
								if (_3a8 && _3a8.item) {
									return dojo.doc().selection.createRange()
											.item(0);
								}
							} else {
								var _3a9 = dojo.global().getSelection();
								return _3a9.anchorNode.childNodes[_3a9.anchorOffset];
							}
						}
					},
					getParentElement : function() {
						if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {
							var p = dojo.html.selection.getSelectedElement();
							if (p) {
								return p.parentNode;
							}
						} else {
							if (dojo.doc()["selection"]) {
								return dojo.doc().selection.createRange()
										.parentElement();
							} else {
								var _3ab = dojo.global().getSelection();
								if (_3ab) {
									var node = _3ab.anchorNode;
									while (node
											&& node.nodeType != dojo.dom.ELEMENT_NODE) {
										node = node.parentNode;
									}
									return node;
								}
							}
						}
					},
					getSelectedText : function() {
						if (dojo.doc()["selection"]) {
							if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {
								return null;
							}
							return dojo.doc().selection.createRange().text;
						} else {
							var _3ad = dojo.global().getSelection();
							if (_3ad) {
								return _3ad.toString();
							}
						}
					},
					getSelectedHtml : function() {
						if (dojo.doc()["selection"]) {
							if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {
								return null;
							}
							return dojo.doc().selection.createRange().htmlText;
						} else {
							var _3ae = dojo.global().getSelection();
							if (_3ae && _3ae.rangeCount) {
								var frag = _3ae.getRangeAt(0).cloneContents();
								var div = document.createElement("div");
								div.appendChild(frag);
								return div.innerHTML;
							}
							return null;
						}
					},
					hasAncestorElement : function(_3b1) {
						return (dojo.html.selection.getAncestorElement.apply(
								this, arguments) != null);
					},
					getAncestorElement : function(_3b2) {
						var node = dojo.html.selection.getSelectedElement()
								|| dojo.html.selection.getParentElement();
						while (node) {
							if (dojo.html.selection.isTag(node, arguments).length > 0) {
								return node;
							}
							node = node.parentNode;
						}
						return null;
					},
					isTag : function(node, tags) {
						if (node && node.tagName) {
							for ( var i = 0; i < tags.length; i++) {
								if (node.tagName.toLowerCase() == String(
										tags[i]).toLowerCase()) {
									return String(tags[i]).toLowerCase();
								}
							}
						}
						return "";
					},
					selectElement : function(_3b7) {
						var _3b8 = dojo.global();
						var _3b9 = dojo.doc();
						_3b7 = dojo.byId(_3b7);
						if (_3b9.selection && dojo.body().createTextRange) {
							try {
								var _3ba = dojo.body().createControlRange();
								_3ba.addElement(_3b7);
								_3ba.select();
							} catch (e) {
								dojo.html.selection.selectElementChildren(_3b7);
							}
						} else {
							if (_3b8["getSelection"]) {
								var _3bb = _3b8.getSelection();
								if (_3bb["removeAllRanges"]) {
									var _3ba = _3b9.createRange();
									_3ba.selectNode(_3b7);
									_3bb.removeAllRanges();
									_3bb.addRange(_3ba);
								}
							}
						}
					},
					selectElementChildren : function(_3bc) {
						var _3bd = dojo.global();
						var _3be = dojo.doc();
						_3bc = dojo.byId(_3bc);
						if (_3be.selection && dojo.body().createTextRange) {
							var _3bf = dojo.body().createTextRange();
							_3bf.moveToElementText(_3bc);
							_3bf.select();
						} else {
							if (_3bd["getSelection"]) {
								var _3c0 = _3bd.getSelection();
								if (_3c0["setBaseAndExtent"]) {
									_3c0.setBaseAndExtent(_3bc, 0, _3bc,
											_3bc.innerText.length - 1);
								} else {
									if (_3c0["selectAllChildren"]) {
										_3c0.selectAllChildren(_3bc);
									}
								}
							}
						}
					},
					getBookmark : function() {
						var _3c1;
						var _3c2 = dojo.doc();
						if (_3c2["selection"]) {
							var _3c3 = _3c2.selection.createRange();
							_3c1 = _3c3.getBookmark();
						} else {
							var _3c4;
							try {
								_3c4 = dojo.global().getSelection();
							} catch (e) {
							}
							if (_3c4) {
								var _3c3 = _3c4.getRangeAt(0);
								_3c1 = _3c3.cloneRange();
							} else {
								dojo
										.debug("No idea how to store the current selection for this browser!");
							}
						}
						return _3c1;
					},
					moveToBookmark : function(_3c5) {
						var _3c6 = dojo.doc();
						if (_3c6["selection"]) {
							var _3c7 = _3c6.selection.createRange();
							_3c7.moveToBookmark(_3c5);
							_3c7.select();
						} else {
							var _3c8;
							try {
								_3c8 = dojo.global().getSelection();
							} catch (e) {
							}
							if (_3c8 && _3c8["removeAllRanges"]) {
								_3c8.removeAllRanges();
								_3c8.addRange(_3c5);
							} else {
								dojo
										.debug("No idea how to restore selection for this browser!");
							}
						}
					},
					collapse : function(_3c9) {
						if (dojo.global()["getSelection"]) {
							var _3ca = dojo.global().getSelection();
							if (_3ca.removeAllRanges) {
								if (_3c9) {
									_3ca.collapseToStart();
								} else {
									_3ca.collapseToEnd();
								}
							} else {
								dojo.global().getSelection().collapse(_3c9);
							}
						} else {
							if (dojo.doc().selection) {
								var _3cb = dojo.doc().selection.createRange();
								_3cb.collapse(_3c9);
								_3cb.select();
							}
						}
					},
					remove : function() {
						if (dojo.doc().selection) {
							var _3cc = dojo.doc().selection;
							if (_3cc.type.toUpperCase() != "NONE") {
								_3cc.clear();
							}
							return _3cc;
						} else {
							var _3cc = dojo.global().getSelection();
							for ( var i = 0; i < _3cc.rangeCount; i++) {
								_3cc.getRangeAt(i).deleteContents();
							}
							return _3cc;
						}
					}
				});
dojo.provide("dojo.html.iframe");
dojo.html.iframeContentWindow = function(_3ce) {
	var win = dojo.html
			.getDocumentWindow(dojo.html.iframeContentDocument(_3ce))
			|| dojo.html.iframeContentDocument(_3ce).__parent__
			|| (_3ce.name && document.frames[_3ce.name]) || null;
	return win;
};
dojo.html.iframeContentDocument = function(_3d0) {
	var doc = _3d0.contentDocument
			|| ((_3d0.contentWindow) && (_3d0.contentWindow.document))
			|| ((_3d0.name) && (document.frames[_3d0.name]) && (document.frames[_3d0.name].document))
			|| null;
	return doc;
};
dojo.html.BackgroundIframe = function(node) {
	if (dojo.render.html.ie55 || dojo.render.html.ie60) {
		var html = "<iframe src='javascript:false'"
				+ " style='position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
				+ "z-index: -1; filter:Alpha(Opacity=\"0\");' " + ">";
		this.iframe = dojo.doc().createElement(html);
		this.iframe.tabIndex = -1;
		if (node) {
			node.appendChild(this.iframe);
			this.domNode = node;
		} else {
			dojo.body().appendChild(this.iframe);
			this.iframe.style.display = "none";
		}
	}
};
dojo.lang.extend(dojo.html.BackgroundIframe, {
	iframe : null,
	onResized : function() {
		if (this.iframe && this.domNode && this.domNode.parentNode) {
			var _3d4 = dojo.html.getMarginBox(this.domNode);
			if (_3d4.width == 0 || _3d4.height == 0) {
				dojo.lang.setTimeout(this, this.onResized, 100);
				return;
			}
			this.iframe.style.width = _3d4.width + "px";
			this.iframe.style.height = _3d4.height + "px";
		}
	},
	size : function(node) {
		if (!this.iframe) {
			return;
		}
		var _3d6 = dojo.html.toCoordinateObject(node, true,
				dojo.html.boxSizing.BORDER_BOX);
		with (this.iframe.style) {
			width = _3d6.width + "px";
			height = _3d6.height + "px";
			left = _3d6.left + "px";
			top = _3d6.top + "px";
		}
	},
	setZIndex : function(node) {
		if (!this.iframe) {
			return;
		}
		if (dojo.dom.isNode(node)) {
			this.iframe.style.zIndex = dojo.html.getStyle(node, "z-index") - 1;
		} else {
			if (!isNaN(node)) {
				this.iframe.style.zIndex = node;
			}
		}
	},
	show : function() {
		if (this.iframe) {
			this.iframe.style.display = "block";
		}
	},
	hide : function() {
		if (this.iframe) {
			this.iframe.style.display = "none";
		}
	},
	remove : function() {
		if (this.iframe) {
			dojo.html.removeNode(this.iframe, true);
			delete this.iframe;
			this.iframe = null;
		}
	}
});
dojo.provide("dojo.widget.PopupContainer");
dojo.require("dojo.html.style");
dojo.require("dojo.event.*");
dojo.declare(
				"dojo.widget.PopupContainerBase",
				null,
				function() {
					this.queueOnAnimationFinish = [];
				},
				{
					isShowingNow : false,
					currentSubpopup : null,
					beginZIndex : 1000,
					parentPopup : null,
					parent : null,
					popupIndex : 0,
					aroundBox : dojo.html.boxSizing.BORDER_BOX,
					openedForWindow : null,
					processKey : function(evt) {
						return false;
					},
					applyPopupBasicStyle : function() {
						with (this.domNode.style) {
							display = "none";
							position = "absolute";
						}
					},
					aboutToShow : function() {
					},
					open : function(x, y, _3db, _3dc, _3dd, _3de) {
						if (this.isShowingNow) {
							return;
						}
						if (this.animationInProgress) {
							this.queueOnAnimationFinish.push(this.open,
									arguments);
							return;
						}
						this.aboutToShow();
						var _3df = false, node, _3e1;
						if (typeof x == "object") {
							node = x;
							_3e1 = _3dc;
							_3dc = _3db;
							_3db = y;
							_3df = true;
						}
						this.parent = _3db;
						dojo.body().appendChild(this.domNode);
						_3dc = _3dc || _3db["domNode"] || [];
						var _3e2 = null;
						this.isTopLevel = true;
						while (_3db) {
							if (_3db !== this
									&& (_3db.setOpenedSubpopup != undefined && _3db.applyPopupBasicStyle != undefined)) {
								_3e2 = _3db;
								this.isTopLevel = false;
								_3e2.setOpenedSubpopup(this);
								break;
							}
							_3db = _3db.parent;
						}
						this.parentPopup = _3e2;
						this.popupIndex = _3e2 ? _3e2.popupIndex + 1 : 1;
						if (this.isTopLevel) {
							var _3e3 = dojo.html.isNode(_3dc) ? _3dc : null;
							dojo.widget.PopupManager.opened(this, _3e3);
						}
						if (this.isTopLevel
								&& !dojo.withGlobal(this.openedForWindow
										|| dojo.global(),
										dojo.html.selection.isCollapsed)) {
							this._bookmark = dojo.withGlobal(
									this.openedForWindow || dojo.global(),
									dojo.html.selection.getBookmark);
						} else {
							this._bookmark = null;
						}
						if (_3dc instanceof Array) {
							_3dc = {
								left : _3dc[0],
								top : _3dc[1],
								width : 0,
								height : 0
							};
						}
						with (this.domNode.style) {
							display = "";
							zIndex = this.beginZIndex + this.popupIndex;
						}
						if (_3df) {
							this.move(node, _3de, _3e1);
						} else {
							this.move(x, y, _3de, _3dd);
						}
						this.domNode.style.display = "none";
						this.explodeSrc = _3dc;
						this.show();
						this.isShowingNow = true;
					},
					move : function(x, y, _3e6, _3e7) {
						var _3e8 = (typeof x == "object");
						if (_3e8) {
							var _3e9 = _3e6;
							var node = x;
							_3e6 = y;
							if (!_3e9) {
								_3e9 = {
									"BL" : "TL",
									"TL" : "BL"
								};
							}
							dojo.html.placeOnScreenAroundElement(this.domNode,
									node, _3e6, this.aroundBox, _3e9);
						} else {
							if (!_3e7) {
								_3e7 = "TL,TR,BL,BR";
							}
							dojo.html.placeOnScreen(this.domNode, x, y, _3e6,
									true, _3e7);
						}
					},
					close : function(_3eb) {
						if (_3eb) {
							this.domNode.style.display = "none";
						}
						if (this.animationInProgress) {
							this.queueOnAnimationFinish.push(this.close, []);
							return;
						}
						this.closeSubpopup(_3eb);
						this.hide();
						if (this.bgIframe) {
							this.bgIframe.hide();
							this.bgIframe.size({
								left : 0,
								top : 0,
								width : 0,
								height : 0
							});
						}
						if (this.isTopLevel) {
							dojo.widget.PopupManager.closed(this);
						}
						this.isShowingNow = false;
						if (this.parent) {
							setTimeout(
									dojo.lang
											.hitch(
													this,
													function() {
														try {
															if (this.parent["focus"]) {
																this.parent
																		.focus();
															} else {
																this.parent.domNode
																		.focus();
															}
														} catch (e) {
															dojo
																	.debug(
																			"No idea how to focus to parent",
																			e);
														}
													}), 10);
						}
						if (this._bookmark
								&& dojo.withGlobal(this.openedForWindow
										|| dojo.global(),
										dojo.html.selection.isCollapsed)) {
							if (this.openedForWindow) {
								this.openedForWindow.focus();
							}
							try {
								dojo
										.withGlobal(this.openedForWindow
												|| dojo.global(),
												"moveToBookmark",
												dojo.html.selection,
												[ this._bookmark ]);
							} catch (e) {
							}
						}
						this._bookmark = null;
					},
					closeAll : function(_3ec) {
						if (this.parentPopup) {
							this.parentPopup.closeAll(_3ec);
						} else {
							this.close(_3ec);
						}
					},
					setOpenedSubpopup : function(_3ed) {
						this.currentSubpopup = _3ed;
					},
					closeSubpopup : function(_3ee) {
						if (this.currentSubpopup == null) {
							return;
						}
						this.currentSubpopup.close(_3ee);
						this.currentSubpopup = null;
					},
					onShow : function() {
						dojo.widget.PopupContainer.superclass.onShow.apply(
								this, arguments);
						this.openedSize = {
							w : this.domNode.style.width,
							h : this.domNode.style.height
						};
						if (dojo.render.html.ie) {
							if (!this.bgIframe) {
								this.bgIframe = new dojo.html.BackgroundIframe();
								this.bgIframe.setZIndex(this.domNode);
							}
							this.bgIframe.size(this.domNode);
							this.bgIframe.show();
						}
						this.processQueue();
					},
					processQueue : function() {
						if (!this.queueOnAnimationFinish.length) {
							return;
						}
						var func = this.queueOnAnimationFinish.shift();
						var args = this.queueOnAnimationFinish.shift();
						func.apply(this, args);
					},
					onHide : function() {
						dojo.widget.HtmlWidget.prototype.onHide.call(this);
						if (this.openedSize) {
							with (this.domNode.style) {
								width = this.openedSize.w;
								height = this.openedSize.h;
							}
						}
						this.processQueue();
					}
				});
dojo.widget.defineWidget("dojo.widget.PopupContainer", [
		dojo.widget.HtmlWidget, dojo.widget.PopupContainerBase ], {
	isContainer : true,
	fillInTemplate : function() {
		this.applyPopupBasicStyle();
		dojo.widget.PopupContainer.superclass.fillInTemplate.apply(this,
				arguments);
	}
});
dojo.widget.PopupManager = new function() {
	this.currentMenu = null;
	this.currentButton = null;
	this.currentFocusMenu = null;
	this.focusNode = null;
	this.registeredWindows = [];
	this.registerWin = function(win) {
		if (!win.__PopupManagerRegistered) {
			dojo.event.connect(win.document, "onmousedown", this, "onClick");
			dojo.event.connect(win, "onscroll", this, "onClick");
			dojo.event.connect(win.document, "onkey", this, "onKey");
			win.__PopupManagerRegistered = true;
			this.registeredWindows.push(win);
		}
	};
	this.registerAllWindows = function(_3f2) {
		if (!_3f2) {
			_3f2 = dojo.html.getDocumentWindow(window.top
					&& window.top.document || window.document);
		}
		this.registerWin(_3f2);
		for ( var i = 0; i < _3f2.frames.length; i++) {
			try {
				var win = dojo.html.getDocumentWindow(_3f2.frames[i].document);
				if (win) {
					this.registerAllWindows(win);
				}
			} catch (e) {
			}
		}
	};
	this.unRegisterWin = function(win) {
		if (win.__PopupManagerRegistered) {
			dojo.event.disconnect(win.document, "onmousedown", this, "onClick");
			dojo.event.disconnect(win, "onscroll", this, "onClick");
			dojo.event.disconnect(win.document, "onkey", this, "onKey");
			win.__PopupManagerRegistered = false;
		}
	};
	this.unRegisterAllWindows = function() {
		for ( var i = 0; i < this.registeredWindows.length; ++i) {
			this.unRegisterWin(this.registeredWindows[i]);
		}
		this.registeredWindows = [];
	};
	dojo.addOnLoad(this, "registerAllWindows");
	dojo.addOnUnload(this, "unRegisterAllWindows");
	this.closed = function(menu) {
		if (this.currentMenu == menu) {
			this.currentMenu = null;
			this.currentButton = null;
			this.currentFocusMenu = null;
		}
	};
	this.opened = function(menu, _3f9) {
		if (menu == this.currentMenu) {
			return;
		}
		if (this.currentMenu) {
			this.currentMenu.close();
		}
		this.currentMenu = menu;
		this.currentFocusMenu = menu;
		this.currentButton = _3f9;
	};
	this.setFocusedMenu = function(menu) {
		this.currentFocusMenu = menu;
};
	this.onKey = function(e) {
		if (!e.key) {
			return;
		}
		if (!this.currentMenu || !this.currentMenu.isShowingNow) {
			return;
		}
		var m = this.currentFocusMenu;
		while (m) {
			if (m.processKey(e)) {
				e.preventDefault();
				e.stopPropagation();
				break;
			}
			m = m.parentPopup || m.parentMenu;
		}
	},
			this.onClick = function(e) {
				if (!this.currentMenu) {
					return;
				}
				var _3fe = dojo.html.getScroll().offset;
				var m = this.currentMenu;
				while (m) {
					if (dojo.html.overElement(m.domNode, e)
							|| dojo.html.isDescendantOf(e.target, m.domNode)) {
						return;
					}
					m = m.currentSubpopup;
				}
				if (this.currentButton
						&& dojo.html.overElement(this.currentButton, e)) {
					return;
				}
				this.currentMenu.closeAll(true);
			};
};
dojo.provide("dojo.widget.DropdownContainer");
dojo.require("dojo.event.*");
dojo.require("dojo.html.display");
dojo.widget
		.defineWidget(
				"dojo.widget.DropdownContainer",
				dojo.widget.HtmlWidget,
				{
					inputWidth : "7em",
					id : "",
					inputId : "",
					inputName : "",
					iconURL : dojo.uri.moduleUri("dojo.widget",
							"templates/images/combo_box_arrow.png"),
					copyClasses : false,
					iconAlt : "",
					containerToggle : "plain",
					containerToggleDuration : 150,
					templateString : "<span style=\"white-space:nowrap\"><input type=\"hidden\" name=\"\" value=\"\" dojoAttachPoint=\"valueNode\" /><input name=\"\" type=\"text\" value=\"\" style=\"vertical-align:middle;\" dojoAttachPoint=\"inputNode\" autocomplete=\"off\" /> <img src=\"${this.iconURL}\" alt=\"${this.iconAlt}\" dojoAttachEvent=\"onclick:onIconClick\" dojoAttachPoint=\"buttonNode\" style=\"vertical-align:middle; cursor:pointer; cursor:hand\" /></span>",
					templateCssPath : "",
					isContainer : true,
					attachTemplateNodes : function() {
						dojo.widget.DropdownContainer.superclass.attachTemplateNodes
								.apply(this, arguments);
						this.popup = dojo.widget
								.createWidget(
										"PopupContainer",
										{
											toggle : this.containerToggle,
											toggleDuration : this.containerToggleDuration
										});
						this.containerNode = this.popup.domNode;
					},
					fillInTemplate : function(args, frag) {
						this.domNode.appendChild(this.popup.domNode);
						if (this.id) {
							this.domNode.id = this.id;
						}
						if (this.inputId) {
							this.inputNode.id = this.inputId;
						}
						if (this.inputName) {
							this.inputNode.name = this.inputName;
						}
						this.inputNode.style.width = this.inputWidth;
						this.inputNode.disabled = this.disabled;
						if (this.copyClasses) {
							this.inputNode.style = "";
							this.inputNode.className = this
									.getFragNodeRef(frag).className;
						}
						dojo.event.connect(this.inputNode, "onchange", this,
								"onInputChange");
					},
					onIconClick : function(evt) {
						if (this.disabled) {
							return;
						}
						if (!this.popup.isShowingNow) {
							this.popup.open(this.inputNode, this,
									this.buttonNode);
						} else {
							this.popup.close();
						}
					},
					hideContainer : function() {
						if (this.popup.isShowingNow) {
							this.popup.close();
						}
					},
					onInputChange : function() {
					},
					enable : function() {
						this.inputNode.disabled = false;
						dojo.widget.DropdownContainer.superclass.enable.apply(
								this, arguments);
					},
					disable : function() {
						this.inputNode.disabled = true;
						dojo.widget.DropdownContainer.superclass.disable.apply(
								this, arguments);
					}
				});
dojo.provide("dojo.widget.html.stabile");
dojo.widget.html.stabile = {
	_sqQuotables : new RegExp("([\\\\'])", "g"),
	_depth : 0,
	_recur : false,
	depthLimit : 2
};
dojo.widget.html.stabile.getState = function(id) {
	dojo.widget.html.stabile.setup();
	return dojo.widget.html.stabile.widgetState[id];
};
dojo.widget.html.stabile.setState = function(id, _405, _406) {
	dojo.widget.html.stabile.setup();
	dojo.widget.html.stabile.widgetState[id] = _405;
	if (_406) {
		dojo.widget.html.stabile.commit(dojo.widget.html.stabile.widgetState);
	}
};
dojo.widget.html.stabile.setup = function() {
	if (!dojo.widget.html.stabile.widgetState) {
		var text = dojo.widget.html.stabile._getStorage().value;
		dojo.widget.html.stabile.widgetState = text ? dj_eval("(" + text + ")")
				: {};
	}
};
dojo.widget.html.stabile.commit = function(_408) {
	dojo.widget.html.stabile._getStorage().value = dojo.widget.html.stabile
			.description(_408);
};
dojo.widget.html.stabile.description = function(v, _40a) {
	var _40b = dojo.widget.html.stabile._depth;
	var _40c = function() {
		return this.description(this, true);
	};
	try {
		if (v === void (0)) {
			return "undefined";
		}
		if (v === null) {
			return "null";
		}
		if (typeof (v) == "boolean" || typeof (v) == "number"
				|| v instanceof Boolean || v instanceof Number) {
			return v.toString();
		}
		if (typeof (v) == "string" || v instanceof String) {
			var v1 = v.replace(dojo.widget.html.stabile._sqQuotables, "\\$1");
			v1 = v1.replace(/\n/g, "\\n");
			v1 = v1.replace(/\r/g, "\\r");
			return "'" + v1 + "'";
		}
		if (v instanceof Date) {
			return "new Date(" + d.getFullYear + "," + d.getMonth() + ","
					+ d.getDate() + ")";
		}
		var d;
		if (v instanceof Array || v.push) {
			if (_40b >= dojo.widget.html.stabile.depthLimit) {
				return "[ ... ]";
			}
			d = "[";
			var _40f = true;
			dojo.widget.html.stabile._depth++;
			for ( var i = 0; i < v.length; i++) {
				if (_40f) {
					_40f = false;
				} else {
					d += ",";
				}
				d += arguments.callee(v[i], _40a);
			}
			return d + "]";
		}
		if (v.constructor == Object || v.toString == _40c) {
			if (_40b >= dojo.widget.html.stabile.depthLimit) {
				return "{ ... }";
			}
			if (typeof (v.hasOwnProperty) != "function" && v.prototype) {
				throw new Error("description: " + v
						+ " not supported by script engine");
			}
			var _40f = true;
			d = "{";
			dojo.widget.html.stabile._depth++;
			for ( var key in v) {
				if (v[key] == void (0) || typeof (v[key]) == "function") {
					continue;
				}
				if (_40f) {
					_40f = false;
				} else {
					d += ", ";
				}
				var kd = key;
				if (!kd.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)) {
					kd = arguments.callee(key, _40a);
				}
				d += kd + ": " + arguments.callee(v[key], _40a);
			}
			return d + "}";
		}
		if (_40a) {
			if (dojo.widget.html.stabile._recur) {
				var _413 = Object.prototype.toString;
				return _413.apply(v, []);
			} else {
				dojo.widget.html.stabile._recur = true;
				return v.toString();
			}
		} else {
			throw new Error("Unknown type: " + v);
			return "'unknown'";
		}
	} finally {
		dojo.widget.html.stabile._depth = _40b;
	}
};
dojo.widget.html.stabile._getStorage = function() {
	if (dojo.widget.html.stabile.dataField) {
		return dojo.widget.html.stabile.dataField;
	}
	var form = document.forms._dojo_form;
	return dojo.widget.html.stabile.dataField = form ? form.stabile : {
		value : ""
	};
};
dojo.provide("dojo.widget.Dialog");
dojo.require("dojo.event.*");
dojo.require("dojo.html.display");
dojo.declare("dojo.widget.ModalDialogBase", null, {
	isContainer : true,
	focusElement : "",
	bgColor : "black",
	bgOpacity : 0.4,
	followScroll : true,
	closeOnBackgroundClick : false,
	trapTabs : function(e) {
		if (e.target == this.tabStartOuter) {
			if (this._fromTrap) {
				this.tabStart.focus();
				this._fromTrap = false;
			} else {
				this._fromTrap = true;
				this.tabEnd.focus();
			}
		} else {
			if (e.target == this.tabStart) {
				if (this._fromTrap) {
					this._fromTrap = false;
				} else {
					this._fromTrap = true;
					this.tabEnd.focus();
				}
			} else {
				if (e.target == this.tabEndOuter) {
					if (this._fromTrap) {
						this.tabEnd.focus();
						this._fromTrap = false;
					} else {
						this._fromTrap = true;
						this.tabStart.focus();
					}
				} else {
					if (e.target == this.tabEnd) {
						if (this._fromTrap) {
							this._fromTrap = false;
						} else {
							this._fromTrap = true;
							this.tabStart.focus();
						}
					}
				}
			}
		}
	},
	clearTrap : function(e) {
		var _417 = this;
		setTimeout(function() {
			_417._fromTrap = false;
		}, 100);
	},
	postCreate : function() {
		with (this.domNode.style) {
			position = "absolute";
			zIndex = 999;
			display = "none";
			overflow = "visible";
		}
		var b = dojo.body();
		b.appendChild(this.domNode);
		this.bg = document.createElement("div");
		this.bg.className = "dialogUnderlay";
		with (this.bg.style) {
			position = "absolute";
			left = top = "0px";
			zIndex = 998;
			display = "none";
		}
		b.appendChild(this.bg);
		this.setBackgroundColor(this.bgColor);
		this.bgIframe = new dojo.html.BackgroundIframe();
		if (this.bgIframe.iframe) {
			with (this.bgIframe.iframe.style) {
				position = "absolute";
				left = top = "0px";
				zIndex = 90;
				display = "none";
			}
		}
		if (this.closeOnBackgroundClick) {
			dojo.event.kwConnect({
				srcObj : this.bg,
				srcFunc : "onclick",
				adviceObj : this,
				adviceFunc : "onBackgroundClick",
				once : true
			});
		}
	},
	uninitialize : function() {
		this.bgIframe.remove();
		dojo.html.removeNode(this.bg, true);
		dojo.event.disconnect(window, "onscroll", this, "_onScroll");
		dojo.event
				.disconnect(document.documentElement, "onkey", this, "_onKey");
	},
	setBackgroundColor : function(_419) {
		if (arguments.length >= 3) {
			_419 = new dojo.gfx.color.Color(arguments[0], arguments[1],
					arguments[2]);
		} else {
			_419 = new dojo.gfx.color.Color(_419);
		}
		this.bg.style.backgroundColor = _419.toString();
		return this.bgColor = _419;
	},
	setBackgroundOpacity : function(op) {
		if (arguments.length == 0) {
			op = this.bgOpacity;
		}
		dojo.html.setOpacity(this.bg, op);
		try {
			this.bgOpacity = dojo.html.getOpacity(this.bg);
		} catch (e) {
			this.bgOpacity = op;
		}
		return this.bgOpacity;
	},
	_sizeBackground : function() {
		if (this.bgOpacity > 0) {
			var _41b = dojo.html.getViewport();
			var h = _41b.height;
			var w = _41b.width;
			with (this.bg.style) {
				width = w + "px";
				height = h + "px";
			}
			var _41e = dojo.html.getScroll().offset;
			this.bg.style.top = _41e.y + "px";
			this.bg.style.left = _41e.x + "px";
			var _41b = dojo.html.getViewport();
			if (_41b.width != w) {
				this.bg.style.width = _41b.width + "px";
			}
			if (_41b.height != h) {
				this.bg.style.height = _41b.height + "px";
			}
		}
		this.bgIframe.size(this.bg);
	},
	_showBackground : function() {
		if (this.bgOpacity > 0) {
			this.bg.style.display = "block";
		}
		if (this.bgIframe.iframe) {
			this.bgIframe.iframe.style.display = "block";
		}
	},
	placeModalDialog : function() {
		var _41f = dojo.html.getScroll().offset;
		var _420 = dojo.html.getViewport();
		var mb;
		if (this.isShowing()) {
			mb = dojo.html.getMarginBox(this.domNode);
		} else {
			dojo.html.setVisibility(this.domNode, false);
			dojo.html.show(this.domNode);
			mb = dojo.html.getMarginBox(this.domNode);
			dojo.html.hide(this.domNode);
			dojo.html.setVisibility(this.domNode, true);
		}
		var x = _41f.x + (_420.width - mb.width) / 2;
		var y = _41f.y + (_420.height - mb.height) / 2;
		with (this.domNode.style) {
			left = x + "px";
			top = y + "px";
		}
	},
	_onKey : function(evt) {
		if (evt.key) {
			var node = evt.target;
			while (node != null) {
				if (node == this.domNode) {
					return;
				}
				node = node.parentNode;
			}
			if (evt.key != evt.KEY_TAB) {
				dojo.event.browser.stopEvent(evt);
			} else {
				if (!dojo.render.html.opera) {
					try {
						this.tabStart.focus();
					} catch (e) {
					}
				}
			}
		}
	},
	showModalDialog : function() {
		if (this.followScroll && !this._scrollConnected) {
			this._scrollConnected = true;
			dojo.event.connect(window, "onscroll", this, "_onScroll");
		}
		dojo.event.connect(document.documentElement, "onkey", this, "_onKey");
		this.placeModalDialog();
		this.setBackgroundOpacity();
		this._sizeBackground();
		this._showBackground();
		this._fromTrap = true;
		setTimeout(dojo.lang.hitch(this, function() {
			try {
				this.tabStart.focus();
			} catch (e) {
			}
		}), 50);
	},
	hideModalDialog : function() {
		if (this.focusElement) {
			dojo.byId(this.focusElement).focus();
			dojo.byId(this.focusElement).blur();
		}
		this.bg.style.display = "none";
		this.bg.style.width = this.bg.style.height = "1px";
		if (this.bgIframe.iframe) {
			this.bgIframe.iframe.style.display = "none";
		}
		dojo.event
				.disconnect(document.documentElement, "onkey", this, "_onKey");
		if (this._scrollConnected) {
			this._scrollConnected = false;
			dojo.event.disconnect(window, "onscroll", this, "_onScroll");
		}
	},
	_onScroll : function() {
		var _426 = dojo.html.getScroll().offset;
		this.bg.style.top = _426.y + "px";
		this.bg.style.left = _426.x + "px";
		this.placeModalDialog();
	},
	checkSize : function() {
		if (this.isShowing()) {
			this._sizeBackground();
			this.placeModalDialog();
			this.onResized();
		}
	},
	onBackgroundClick : function() {
		if (this.lifetime - this.timeRemaining >= this.blockDuration) {
			return;
		}
		this.hide();
	}
});
dojo.widget
		.defineWidget(
				"dojo.widget.Dialog",
				[ dojo.widget.ContentPane, dojo.widget.ModalDialogBase ],
				{
					templateString : "<div id=\"${this.widgetId}\" class=\"dojoDialog\" dojoattachpoint=\"wrapper\">\n\t<span dojoattachpoint=\"tabStartOuter\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\"\ttabindex=\"0\"></span>\n\t<span dojoattachpoint=\"tabStart\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n\t<div dojoattachpoint=\"containerNode\" style=\"position: relative; z-index: 2;\"></div>\n\t<span dojoattachpoint=\"tabEnd\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n\t<span dojoattachpoint=\"tabEndOuter\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n</div>\n",
					blockDuration : 0,
					lifetime : 0,
					closeNode : "",
					postMixInProperties : function() {
						dojo.widget.Dialog.superclass.postMixInProperties
								.apply(this, arguments);
						if (this.closeNode) {
							this.setCloseControl(this.closeNode);
						}
					},
					postCreate : function() {
						dojo.widget.Dialog.superclass.postCreate.apply(this,
								arguments);
						dojo.widget.ModalDialogBase.prototype.postCreate.apply(
								this, arguments);
					},
					show : function() {
						if (this.lifetime) {
							this.timeRemaining = this.lifetime;
							if (this.timerNode) {
								this.timerNode.innerHTML = Math
										.ceil(this.timeRemaining / 1000);
							}
							if (this.blockDuration && this.closeNode) {
								if (this.lifetime > this.blockDuration) {
									this.closeNode.style.visibility = "hidden";
								} else {
									this.closeNode.style.display = "none";
								}
							}
							if (this.timer) {
								clearInterval(this.timer);
							}
							this.timer = setInterval(dojo.lang.hitch(this,
									"_onTick"), 100);
						}
						this.showModalDialog();
						dojo.widget.Dialog.superclass.show.call(this);
					},
					onLoad : function() {
						this.placeModalDialog();
						dojo.widget.Dialog.superclass.onLoad.call(this);
					},
					fillInTemplate : function() {
					},
					hide : function() {
						this.hideModalDialog();
						dojo.widget.Dialog.superclass.hide.call(this);
						if (this.timer) {
							clearInterval(this.timer);
						}
					},
					setTimerNode : function(node) {
						this.timerNode = node;
					},
					setCloseControl : function(node) {
						this.closeNode = dojo.byId(node);
						dojo.event.connect(this.closeNode, "onclick", this,
								"hide");
					},
					setShowControl : function(node) {
						node = dojo.byId(node);
						dojo.event.connect(node, "onclick", this, "show");
					},
					_onTick : function() {
						if (this.timer) {
							this.timeRemaining -= 100;
							if (this.lifetime - this.timeRemaining >= this.blockDuration) {
								if (this.closeNode) {
									this.closeNode.style.visibility = "visible";
								}
							}
							if (!this.timeRemaining) {
								clearInterval(this.timer);
								this.hide();
							} else {
								if (this.timerNode) {
									this.timerNode.innerHTML = Math
											.ceil(this.timeRemaining / 1000);
								}
							}
						}
					}
				});
dojo.provide("dojo.widget.ComboBox");
dojo.require("dojo.event.*");
dojo.require("dojo.html.*");
dojo.require("dojo.string");
dojo.declare("dojo.widget.incrementalComboBoxDataProvider", null,
		function(_42a) {
			this.searchUrl = _42a.dataUrl;
			this._cache = {};
			this._inFlight = false;
			this._lastRequest = null;
			this.allowCache = false;
		}, {
			_addToCache : function(_42b, data) {
				if (this.allowCache) {
					this._cache[_42b] = data;
				}
			},
			startSearch : function(_42d, _42e) {
				if (this._inFlight) {
				}
				var tss = encodeURIComponent(_42d);
				var _430 = dojo.string.substituteParams(this.searchUrl, {
					"searchString" : tss
				});
				var _431 = this;
				var _432 = this._lastRequest = dojo.io.bind({
					url : _430,
					method : "get",
					mimetype : "text/json",
					load : function(type, data, evt) {
						_431._inFlight = false;
						if (!dojo.lang.isArray(data)) {
							var _436 = [];
							for ( var key in data) {
								_436.push([ data[key], key ]);
							}
							data = _436;
						}
						_431._addToCache(_42d, data);
						if (_432 == _431._lastRequest) {
							_42e(data);
						}
					}
				});
				this._inFlight = true;
			}
		});
dojo
		.declare("dojo.widget.basicComboBoxDataProvider", null, function(_438,
				node) {
			this._data = [];
			this.searchLimit = 30;
			this.searchType = "STARTSTRING";
			this.caseSensitive = false;
			if (!dj_undef("dataUrl", _438)
					&& !dojo.string.isBlank(_438.dataUrl)) {
				this._getData(_438.dataUrl);
			} else {
				if ((node) && (node.nodeName.toLowerCase() == "select")) {
					var opts = node.getElementsByTagName("option");
					var ol = opts.length;
					var data = [];
					for ( var x = 0; x < ol; x++) {
						var text = opts[x].textContent || opts[x].innerText
								|| opts[x].innerHTML;
						var _43f = [ String(text), String(opts[x].value) ];
						data.push(_43f);
						if (opts[x].selected) {
							_438.setAllValues(_43f[0], _43f[1]);
						}
					}
					this.setData(data);
				}
			}
		},
				{
					_getData : function(url) {
						dojo.io.bind({
							url : url,
							load : dojo.lang.hitch(this, function(type, data,
									evt) {
								if (!dojo.lang.isArray(data)) {
									var _444 = [];
									for ( var key in data) {
										_444.push([ data[key], key ]);
									}
									data = _444;
								}
								this.setData(data);
							}),
							mimetype : "text/json"
						});
					},
					startSearch : function(_446, _447) {
						this._performSearch(_446, _447);
					},
					_performSearch : function(_448, _449) {
						var st = this.searchType;
						var ret = [];
						if (!this.caseSensitive) {
							_448 = _448.toLowerCase();
						}
						for ( var x = 0; x < this._data.length; x++) {
							if ((this.searchLimit > 0)
									&& (ret.length >= this.searchLimit)) {
								break;
							}
							var _44d = new String(
									(!this.caseSensitive) ? this._data[x][0]
											.toLowerCase() : this._data[x][0]);
							if (_44d.length < _448.length) {
								continue;
							}
							if (st == "STARTSTRING") {
								if (_448 == _44d.substr(0, _448.length)) {
									ret.push(this._data[x]);
								}
							} else {
								if (st == "SUBSTRING") {
									if (_44d.indexOf(_448) >= 0) {
										ret.push(this._data[x]);
									}
								} else {
									if (st == "STARTWORD") {
										var idx = _44d.indexOf(_448);
										if (idx == 0) {
											ret.push(this._data[x]);
										}
										if (idx <= 0) {
											continue;
										}
										var _44f = false;
										while (idx != -1) {
											if (" ,/(".indexOf(_44d
													.charAt(idx - 1)) != -1) {
												_44f = true;
												break;
											}
											idx = _44d.indexOf(_448, idx + 1);
										}
										if (!_44f) {
											continue;
										} else {
											ret.push(this._data[x]);
										}
									}
								}
							}
						}
						_449(ret);
					},
					setData : function(_450) {
						this._data = _450;
					}
				});
dojo.widget
		.defineWidget(
				"dojo.widget.ComboBox",
				dojo.widget.HtmlWidget,
				{
					forceValidOption : false,
					searchType : "stringstart",
					dataProvider : null,
					autoComplete : true,
					searchDelay : 100,
					dataUrl : "",
					fadeTime : 200,
					maxListLength : 8,
					mode : "local",
					selectedResult : null,
					dataProviderClass : "",
					buttonSrc : dojo.uri.moduleUri("dojo.widget",
							"templates/images/combo_box_arrow.png"),
					dropdownToggle : "fade",
					templateString : "<span _=\"whitespace and CR's between tags adds &nbsp; in FF\"\n\tclass=\"dojoComboBoxOuter\"\n\t><input style=\"display:none\"  tabindex=\"-1\" name=\"\" value=\"\" \n\t\tdojoAttachPoint=\"comboBoxValue\"\n\t><input style=\"display:none\"  tabindex=\"-1\" name=\"\" value=\"\" \n\t\tdojoAttachPoint=\"comboBoxSelectionValue\"\n\t><input type=\"text\" autocomplete=\"off\" class=\"dojoComboBox\"\n\t\tdojoAttachEvent=\"key:_handleKeyEvents; keyUp: onKeyUp; compositionEnd; onResize;\"\n\t\tdojoAttachPoint=\"textInputNode\"\n\t><img hspace=\"0\"\n\t\tvspace=\"0\"\n\t\tclass=\"dojoComboBox\"\n\t\tdojoAttachPoint=\"downArrowNode\"\n\t\tdojoAttachEvent=\"onMouseUp: handleArrowClick; onResize;\"\n\t\tsrc=\"${this.buttonSrc}\"\n></span>\n",
					templateCssString : ".dojoComboBoxOuter {\n\tborder: 0px !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n\tbackground: transparent !important;\n\twhite-space: nowrap !important;\n}\n\n.dojoComboBox {\n\tborder: 1px inset #afafaf;\n\tmargin: 0px;\n\tpadding: 0px;\n\tvertical-align: middle !important;\n\tfloat: none !important;\n\tposition: static !important;\n\tdisplay: inline !important;\n}\n\n/* the input box */\ninput.dojoComboBox {\n\tborder-right-width: 0px !important; \n\tmargin-right: 0px !important;\n\tpadding-right: 0px !important;\n}\n\n/* the down arrow */\nimg.dojoComboBox {\n\tborder-left-width: 0px !important;\n\tpadding-left: 0px !important;\n\tmargin-left: 0px !important;\n}\n\n/* IE vertical-alignment calculations can be off by +-1 but these margins are collapsed away */\n.dj_ie img.dojoComboBox {\n\tmargin-top: 1px; \n\tmargin-bottom: 1px; \n}\n\n/* the drop down */\n.dojoComboBoxOptions {\n\tfont-family: Verdana, Helvetica, Garamond, sans-serif;\n\t/* font-size: 0.7em; */\n\tbackground-color: white;\n\tborder: 1px solid #afafaf;\n\tposition: absolute;\n\tz-index: 1000; \n\toverflow: auto;\n\tcursor: default;\n}\n\n.dojoComboBoxItem {\n\tpadding-left: 2px;\n\tpadding-top: 2px;\n\tmargin: 0px;\n}\n\n.dojoComboBoxItemEven {\n\tbackground-color: #f4f4f4;\n}\n\n.dojoComboBoxItemOdd {\n\tbackground-color: white;\n}\n\n.dojoComboBoxItemHighlight {\n\tbackground-color: #63709A;\n\tcolor: white;\n}\n",
					templateCssPath : dojo.uri.moduleUri("dojo.widget",
							"templates/ComboBox.css"),
					setValue : function(_451) {
						this.comboBoxValue.value = _451;
						if (this.textInputNode.value != _451) {
							this.textInputNode.value = _451;
							dojo.widget.html.stabile.setState(this.widgetId,
									this.getState(), true);
							this.onValueChanged(_451);
						}
					},
					onValueChanged : function(_452) {
					},
					getValue : function() {
						return this.comboBoxValue.value;
					},
					getState : function() {
						return {
							value : this.getValue()
						};
					},
					setState : function(_453) {
						this.setValue(_453.value);
					},
					enable : function() {
						this.disabled = false;
						this.textInputNode.removeAttribute("disabled");
					},
					disable : function() {
						this.disabled = true;
						this.textInputNode.setAttribute("disabled", true);
					},
					_getCaretPos : function(_454) {
						if (dojo.lang.isNumber(_454.selectionStart)) {
							return _454.selectionStart;
						} else {
							if (dojo.render.html.ie) {
								var tr = document.selection.createRange()
										.duplicate();
								var ntr = _454.createTextRange();
								tr.move("character", 0);
								ntr.move("character", 0);
								try {
									ntr.setEndPoint("EndToEnd", tr);
									return String(ntr.text).replace(/\r/g, "").length;
								} catch (e) {
									return 0;
								}
							}
						}
					},
					_setCaretPos : function(_457, _458) {
						_458 = parseInt(_458);
						this._setSelectedRange(_457, _458, _458);
					},
					_setSelectedRange : function(_459, _45a, end) {
						if (!end) {
							end = _459.value.length;
						}
						if (_459.setSelectionRange) {
							_459.focus();
							_459.setSelectionRange(_45a, end);
						} else {
							if (_459.createTextRange) {
								var _45c = _459.createTextRange();
								with (_45c) {
									collapse(true);
									moveEnd("character", end);
									moveStart("character", _45a);
									select();
								}
							} else {
								_459.value = _459.value;
								_459.blur();
								_459.focus();
								var dist = parseInt(_459.value.length) - end;
								var _45e = String.fromCharCode(37);
								var tcc = _45e.charCodeAt(0);
								for ( var x = 0; x < dist; x++) {
									var te = document.createEvent("KeyEvents");
									te.initKeyEvent("keypress", true, true,
											null, false, false, false, false,
											tcc, tcc);
									_459.dispatchEvent(te);
								}
							}
						}
					},
					_handleKeyEvents : function(evt) {
						if (evt.ctrlKey || evt.altKey || !evt.key) {
							return;
						}
						this._prev_key_backspace = false;
						this._prev_key_esc = false;
						var k = dojo.event.browser.keys;
						var _464 = true;
						switch (evt.key) {
						case k.KEY_DOWN_ARROW:
							if (!this.popupWidget.isShowingNow) {
								this._startSearchFromInput();
							}
							this._highlightNextOption();
							dojo.event.browser.stopEvent(evt);
							return;
						case k.KEY_UP_ARROW:
							this._highlightPrevOption();
							dojo.event.browser.stopEvent(evt);
							return;
						case k.KEY_TAB:
							if (!this.autoComplete
									&& this.popupWidget.isShowingNow
									&& this._highlighted_option) {
								dojo.event.browser.stopEvent(evt);
								this._selectOption({
									"target" : this._highlighted_option,
									"noHide" : false
								});
								this._setSelectedRange(this.textInputNode,
										this.textInputNode.value.length, null);
							} else {
								this._selectOption();
								return;
							}
							break;
						case k.KEY_ENTER:
							if (this.popupWidget.isShowingNow) {
								dojo.event.browser.stopEvent(evt);
							}
							if (this.autoComplete) {
								this._selectOption();
								return;
							}
						case " ":
							if (this.popupWidget.isShowingNow
									&& this._highlighted_option) {
								dojo.event.browser.stopEvent(evt);
								this._selectOption();
								this._hideResultList();
								return;
							}
							break;
						case k.KEY_ESCAPE:
							this._hideResultList();
							this._prev_key_esc = true;
							return;
						case k.KEY_BACKSPACE:
							this._prev_key_backspace = true;
							if (!this.textInputNode.value.length) {
								this.setAllValues("", "");
								this._hideResultList();
								_464 = false;
							}
							break;
						case k.KEY_RIGHT_ARROW:
						case k.KEY_LEFT_ARROW:
							_464 = false;
							break;
						default:
							if (evt.charCode == 0) {
								_464 = false;
							}
						}
						if (this.searchTimer) {
							clearTimeout(this.searchTimer);
						}
						if (_464) {
							this._blurOptionNode();
							this.searchTimer = setTimeout(dojo.lang.hitch(this,
									this._startSearchFromInput),
									this.searchDelay);
						}
					},
					compositionEnd : function(evt) {
						evt.key = evt.keyCode;
						this._handleKeyEvents(evt);
					},
					onKeyUp : function(evt) {
						this.setValue(this.textInputNode.value);
					},
					setSelectedValue : function(_467) {
						this.comboBoxSelectionValue.value = _467;
					},
					setAllValues : function(_468, _469) {
						this.setSelectedValue(_469);
						this.setValue(_468);
					},
					_focusOptionNode : function(node) {
						if (this._highlighted_option != node) {
							this._blurOptionNode();
							this._highlighted_option = node;
							dojo.html.addClass(this._highlighted_option,
									"dojoComboBoxItemHighlight");
						}
					},
					_blurOptionNode : function() {
						if (this._highlighted_option) {
							dojo.html.removeClass(this._highlighted_option,
									"dojoComboBoxItemHighlight");
							this._highlighted_option = null;
						}
					},
					_highlightNextOption : function() {
						if ((!this._highlighted_option)
								|| !this._highlighted_option.parentNode) {
							this
									._focusOptionNode(this.optionsListNode.firstChild);
						} else {
							if (this._highlighted_option.nextSibling) {
								this
										._focusOptionNode(this._highlighted_option.nextSibling);
							}
						}
						dojo.html.scrollIntoView(this._highlighted_option);
					},
					_highlightPrevOption : function() {
						if (this._highlighted_option
								&& this._highlighted_option.previousSibling) {
							this
									._focusOptionNode(this._highlighted_option.previousSibling);
						} else {
							this._highlighted_option = null;
							this._hideResultList();
							return;
						}
						dojo.html.scrollIntoView(this._highlighted_option);
					},
					_itemMouseOver : function(evt) {
						if (evt.target === this.optionsListNode) {
							return;
						}
						this._focusOptionNode(evt.target);
						dojo.html.addClass(this._highlighted_option,
								"dojoComboBoxItemHighlight");
					},
					_itemMouseOut : function(evt) {
						if (evt.target === this.optionsListNode) {
							return;
						}
						this._blurOptionNode();
					},
					onResize : function() {
						var _46d = dojo.html.getContentBox(this.textInputNode);
						if (_46d.height <= 0) {
							dojo.lang.setTimeout(this, "onResize", 100);
							return;
						}
						var _46e = {
							width : _46d.height,
							height : _46d.height
						};
						dojo.html.setContentBox(this.downArrowNode, _46e);
					},
					fillInTemplate : function(args, frag) {
						dojo.html.applyBrowserClass(this.domNode);
						var _471 = this.getFragNodeRef(frag);
						if (!this.name && _471.name) {
							this.name = _471.name;
						}
						this.comboBoxValue.name = this.name;
						this.comboBoxSelectionValue.name = this.name
								+ "_selected";
						dojo.html.copyStyle(this.domNode, _471);
						dojo.html.copyStyle(this.textInputNode, _471);
						dojo.html.copyStyle(this.downArrowNode, _471);
						with (this.downArrowNode.style) {
							width = "0px";
							height = "0px";
						}
						var _472;
						if (this.dataProviderClass) {
							if (typeof this.dataProviderClass == "string") {
								_472 = dojo.evalObjPath(this.dataProviderClass);
							} else {
								_472 = this.dataProviderClass;
							}
						} else {
							if (this.mode == "remote") {
								_472 = dojo.widget.incrementalComboBoxDataProvider;
							} else {
								_472 = dojo.widget.basicComboBoxDataProvider;
							}
						}
						this.dataProvider = new _472(this, this
								.getFragNodeRef(frag));
						this.popupWidget = new dojo.widget.createWidget(
								"PopupContainer", {
									toggle : this.dropdownToggle,
									toggleDuration : this.toggleDuration
								});
						dojo.event.connect(this, "destroy", this.popupWidget,
								"destroy");
						this.optionsListNode = this.popupWidget.domNode;
						this.domNode.appendChild(this.optionsListNode);
						dojo.html.addClass(this.optionsListNode,
								"dojoComboBoxOptions");
						dojo.event.connect(this.optionsListNode, "onclick",
								this, "_selectOption");
						dojo.event.connect(this.optionsListNode, "onmouseover",
								this, "_onMouseOver");
						dojo.event.connect(this.optionsListNode, "onmouseout",
								this, "_onMouseOut");
						dojo.event.connect(this.optionsListNode, "onmouseover",
								this, "_itemMouseOver");
						dojo.event.connect(this.optionsListNode, "onmouseout",
								this, "_itemMouseOut");
					},
					_openResultList : function(_473) {
						if (this.disabled) {
							return;
						}
						this._clearResultList();
						if (!_473.length) {
							this._hideResultList();
						}
						if ((this.autoComplete) && (_473.length)
								&& (!this._prev_key_backspace)
								&& (this.textInputNode.value.length > 0)) {
							var cpos = this._getCaretPos(this.textInputNode);
							if ((cpos + 1) > this.textInputNode.value.length) {
								this.textInputNode.value += _473[0][0]
										.substr(cpos);
								this._setSelectedRange(this.textInputNode,
										cpos, this.textInputNode.value.length);
							}
						}
						var even = true;
						while (_473.length) {
							var tr = _473.shift();
							if (tr) {
								var td = document.createElement("div");
								td.appendChild(document.createTextNode(tr[0]));
								td.setAttribute("resultName", tr[0]);
								td.setAttribute("resultValue", tr[1]);
								td.className = "dojoComboBoxItem "
										+ ((even) ? "dojoComboBoxItemEven"
												: "dojoComboBoxItemOdd");
								even = (!even);
								this.optionsListNode.appendChild(td);
							}
						}
						this._showResultList();
					},
					_onFocusInput : function() {
						this._hasFocus = true;
					},
					_onBlurInput : function() {
						this._hasFocus = false;
						this._handleBlurTimer(true, 500);
					},
					_handleBlurTimer : function(_478, _479) {
						if (this.blurTimer && (_478 || _479)) {
							clearTimeout(this.blurTimer);
						}
						if (_479) {
							this.blurTimer = dojo.lang.setTimeout(this,
									"_checkBlurred", _479);
						}
					},
					_onMouseOver : function(evt) {
						if (!this._mouseover_list) {
							this._handleBlurTimer(true, 0);
							this._mouseover_list = true;
						}
					},
					_onMouseOut : function(evt) {
						var _47c = evt.relatedTarget;
						try {
							if (!_47c
									|| _47c.parentNode != this.optionsListNode) {
								this._mouseover_list = false;
								this._handleBlurTimer(true, 100);
								this._tryFocus();
							}
						} catch (e) {
						}
					},
					_isInputEqualToResult : function(_47d) {
						var _47e = this.textInputNode.value;
						if (!this.dataProvider.caseSensitive) {
							_47e = _47e.toLowerCase();
							_47d = _47d.toLowerCase();
						}
						return (_47e == _47d);
					},
					_isValidOption : function() {
						var tgt = dojo.html.firstElement(this.optionsListNode);
						var _480 = false;
						while (!_480 && tgt) {
							if (this._isInputEqualToResult(tgt
									.getAttribute("resultName"))) {
								_480 = true;
							} else {
								tgt = dojo.html.nextElement(tgt);
							}
						}
						return _480;
					},
					_checkBlurred : function() {
						if (!this._hasFocus && !this._mouseover_list) {
							this._hideResultList();
							if (!this.textInputNode.value.length) {
								this.setAllValues("", "");
								return;
							}
							var _481 = this._isValidOption();
							if (this.forceValidOption && !_481) {
								this.setAllValues("", "");
								return;
							}
							if (!_481) {
								this.setSelectedValue("");
							}
						}
					},
					_selectOption : function(evt) {
						var tgt = null;
						if (!evt) {
							evt = {
								target : this._highlighted_option
							};
						}
						if (!dojo.html.isDescendantOf(evt.target,
								this.optionsListNode)) {
							if (!this.textInputNode.value.length) {
								return;
							}
							tgt = dojo.html.firstElement(this.optionsListNode);
							if (!tgt
									|| !this._isInputEqualToResult(tgt
											.getAttribute("resultName"))) {
								return;
							}
						} else {
							tgt = evt.target;
						}
						while ((tgt.nodeType != 1)
								|| (!tgt.getAttribute("resultName"))) {
							tgt = tgt.parentNode;
							if (tgt === dojo.body()) {
								return false;
							}
						}
						this.selectedResult = [ tgt.getAttribute("resultName"),
								tgt.getAttribute("resultValue") ];
						this.setAllValues(tgt.getAttribute("resultName"), tgt
								.getAttribute("resultValue"));
						if (!evt.noHide) {
							this._hideResultList();
							this._setSelectedRange(this.textInputNode, 0, null);
						}
						this._tryFocus();
					},
					_clearResultList : function() {
						if (this.optionsListNode.innerHTML) {
							this.optionsListNode.innerHTML = "";
						}
					},
					_hideResultList : function() {
						this.popupWidget.close();
					},
					_showResultList : function() {
						var _484 = this.optionsListNode.childNodes;
						if (_484.length) {
							var _485 = Math
									.min(_484.length, this.maxListLength);
							with (this.optionsListNode.style) {
								display = "";
								if (_485 == _484.length) {
									height = "";
								} else {
									height = _485
											* dojo.html.getMarginBox(_484[0]).height
											+ "px";
								}
								width = (dojo.html.getMarginBox(this.domNode).width - 2)
										+ "px";
							}
							this.popupWidget.open(this.domNode, this,
									this.downArrowNode);
						} else {
							this._hideResultList();
						}
					},
					handleArrowClick : function() {
						this._handleBlurTimer(true, 0);
						this._tryFocus();
						if (this.popupWidget.isShowingNow) {
							this._hideResultList();
						} else {
							this._startSearch("");
						}
					},
					_tryFocus : function() {
						try {
							this.textInputNode.focus();
						} catch (e) {
						}
					},
					_startSearchFromInput : function() {
						this._startSearch(this.textInputNode.value);
					},
					_startSearch : function(key) {
						this.dataProvider.startSearch(key, dojo.lang.hitch(
								this, "_openResultList"));
					},
					postCreate : function() {
						this.onResize();
						dojo.event.connect(this.textInputNode, "onblur", this,
								"_onBlurInput");
						dojo.event.connect(this.textInputNode, "onfocus", this,
								"_onFocusInput");
						if (this.disabled) {
							this.disable();
						}
						var s = dojo.widget.html.stabile
								.getState(this.widgetId);
						if (s) {
							this.setState(s);
						}
					}
				});
dojo.provide("dojo.widget.Select");
dojo.widget.defineWidget("dojo.widget.Select", dojo.widget.ComboBox,
		{
			forceValidOption : true,
			setValue : function(_488) {
				this.comboBoxValue.value = _488;
				dojo.widget.html.stabile.setState(this.widgetId, this
						.getState(), true);
				this.onValueChanged(_488);
			},
			setLabel : function(_489) {
				this.comboBoxSelectionValue.value = _489;
				if (this.textInputNode.value != _489) {
					this.textInputNode.value = _489;
				}
			},
			getLabel : function() {
				return this.comboBoxSelectionValue.value;
			},
			getState : function() {
				return {
					value : this.getValue(),
					label : this.getLabel()
				};
			},
			onKeyUp : function(evt) {
				this.setLabel(this.textInputNode.value);
			},
			setState : function(_48b) {
				this.setValue(_48b.value);
				this.setLabel(_48b.label);
			},
			setAllValues : function(_48c, _48d) {
				this.setLabel(_48c);
				this.setValue(_48d);
			}
		});
